背景:202012之后苹果将不接受使用UIWebView
UIWebView 被拒的解决方案:使用WKWebView替代UIWebView
1、查 SDK是否用 UIWebView 的 API 2、移除/升级含UIWebView的第三方SDK(例:AFNetworking) 3、使用WKWebView替代UIWebView 4、WKWebView与JS交互案例(
点击页面图片,调用iOS方法进行图片放大显示
) WKScriptMessageHandler协议必须实现的函数,是APP与js交互,提供从网页中收消息的回调方法- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message;
// message: 收到的脚本信息
WKWebView比UIWebView更安全
基于NSURLProtocol实现iOS应用底层所有网络请求拦截(含网页ajax请求拦截【不支持WKWebView】NSURLProtocol 只能拦截 UIURLConnection、NSURLSession 和 UIWebView 中的请求;
对于 WKWebView 中发出的网络请求也无能为力
,如果真的要拦截来自 WKWebView 中的请求,还是需要实现 WKWebView 对应的 WKNavigationDelegate,并在代理方法中获取请求。
grep -r "UIWebView" .
)➜ retail git:(develop) grep -r "UIWebView" .
Binary file ./retail.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate matches
./Pods/Pods.xcodeproj/project.pbxproj: 337C8A9592224E2629F71F4759AE0DF2 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 55098EA6EA9BE396074DA1E1980C154A /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Project, ); }; };
./Pods/Pods.xcodeproj/project.pbxproj: 6326910744CB757A56F0D16A8892445E /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F1F2113749BAA47EBE9F2FE1F43FDA51 /* UIWebView+AFNetworking.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
./Pods/NJKWebViewProgress/NJKWebViewProgress/NJKWebViewProgress.m:- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
AXWebViewController (0.7.2) 使用了NJKWebViewProgress iOS8.0以下使用了NJKWebViewProgress作为进度条, 因此对于上架审核没有影响。
./Pods/Headers/Private/ZBarSDK/ZBarHelpController.h: < UIWebViewDelegate,
./Pods/Headers/Private/ZBarSDK/ZBarHelpController.h: UIWebView *webView;
./Pods/ZBarSDK/iphone/ZBarHelpController.m: webView = [[UIWebView alloc]
./Pods/ZBarSDK/iphone/ZBarHelpController.m:- (void) webViewDidFinishLoad: (UIWebView*) view
./Pods/ZBarSDK/iphone/ZBarHelpController.m:- (BOOL) webView: (UIWebView*) view
./Pods/ZBarSDK/iphone/ZBarHelpController.m: navigationType: (UIWebViewNavigationType) nav
pod 'LBXScan/LBXNative','~> 2.4.1' #系统原生API封装库
pod 'LBXScan/LBXZXing','~> 2.4.1'
#pod 'LBXScan/UI','~> 2.3'
pod 'LBXScan/UI','~> 2.4.1'
pod 'LBXZBarSDK','~> 1.3' 删除UIWebView
自己是否用了该 API 只需要在 Xcode 中全局搜索即可
pod 'AFNetworking','~> 4.0.1'#2、 Migrate UIWebview to WKWebView #4441
#4.x iOS 9 macOS 10.10 watchOS 2.0 tvOS 9.0 Xcode 11+ is required.
正式移除了UIWebView分类
处理afn的接口问题,老版本的post get formdata的请求形式在4.0都有了调整,因此需要更改工程中的相应的方法
修改为:
[manager GET:urlStr parameters:params headers:@{} progress:^(NSProgress * _Nonnull downloadProgress) {
iOS小技能:打包注意事项(私有API检测)https://blog.csdn.net/z929118967/article/details/128236066