UIWebView在经历了IOS13以后彻底被苹果遗弃了,以至于UIWebView的交互方法在IOS13及以上系统都不在主线程执行啦。
为了这个问题,还得来一次紧急更新。可能也是之前没有更换WKWebView的原因吧。
1.WKWebView使用
包含基本使用和交互方法使用
WKUserContentController *userContentController = [[WKUserContentController alloc] init];
/**
设置代理对象
ScriptMessageHandler:WKScriptMessageHandler的代理对象
name:跟后端协调好的响应名称
**/
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.userContentController = userContentController;
webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 20, WIDTH, HEIGHT-20-HostHeight) configuration:configuration];
webView.backgroundColor = [UIColor whiteColor];
//初始化WKWebViewConfiguration
[webView.configuration.userContentController addScriptMessageHandler:self name:@"toLogin"];
[webView.configuration.userContentController addScriptMessageHandler:self name:@"openWxLogin"];
[webView.configuration.userContentController addScriptMessageHandler:self name:@"openAppPage"];
[webView setUserInteractionEnabled:YES]; //是否支持交互
webView.UIDelegate = self;
webView.navigationDelegate = self; //自动缩放以适应屏幕
[self.view addSubview:webView];
webView.backgroundColor = [UIColor colorWithRed:242/255.0 green:242/255.0 blue:242/255.0 alpha:1.0];
NSString *URLStr =self.strURL;
NSLog(@"%@",URLStr);
NSURL* url = [NSURL URLWithString:URLStr];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
以上是注册监听和基础使用
网友评论