从iOS 8.0开始,应该使用WKWebView。
消息交互
WKWebView和本地程序的交互有3种方式:
第一种在WebView内容的特定加载阶段执行一段JS。
在WKWebView
的configuration
的usercontentController
中添加一个WKUserScript
。使用WKUserContentController
的addUserScript
方法,这个方法中可以指定JS代码执行的时机,目前只有WKUserScriptInjectionTimeAtDocumentStart
和WKUserScriptInjectionTimeAtDocumentEnd
两个选项。
NSString *jsCode = @"var s = document.createElement('style');"
"s.textContent = '"
"body { font-size: 40px;}; '"
"\n"
"document.documentElement.appendChild(s);\n";
WKUserScript *script = [[WKUserScript alloc]
initWithSource:jsCode
injectionTime:WKUserScriptInjectionTimeAtDocumentStart
forMainFrameOnly:YES];
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.userContentController = [[WKUserContentController alloc] init];
[config.userContentController addUserScript:script];
[config.userContentController addScriptMessageHandler: self name:@"playbutton”];
第二种方式是在任何时候,本地代码让W