美文网首页
iOS WKWebView 给JS方法传递数据

iOS WKWebView 给JS方法传递数据

作者: bense100 | 来源:发表于2018-11-28 16:30 被阅读143次

UIWebView可以直接利用JavaScriptCore框架和JS交互,包括JS调用本地方法时,同步返回数据给JS。WKWebView不能利用javaScriptCore交互,给JS传值有下面几种思路:

1、JS 调用native方法,native方法中立刻调用JS方法,通过传参的形式将数据给到JS。
2、利用开源框架WebViewJavascriptBridge完成
[self.bridge registerHandler:@"ObjC Echo" handler:^(id data, WVJBResponseCallback responseCallback) {
    NSLog(@"ObjC Echo called with: %@", data);
    responseCallback(data);
}];
[self.bridge callHandler:@"JS Echo" data:nil responseCallback:^(id responseData) {
    NSLog(@"ObjC received response: %@", responseData);
}];
3、在简书上看到另一种思路,通过拦截alert的方式,将数据传递给JS,此方法本人还未尝试,有兴趣的同学可以试一下。《iOS WKWebView与JS交互》
// 交互。可输入的文本。
 - (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * _Nullable))completionHandler 
 {
    NSLog(@"%@---%@",prompt,defaultText); completionHandler(@"xxxxx");//这里就是要返回给JS的返回值
 }

相关文章

网友评论

      本文标题:iOS WKWebView 给JS方法传递数据

      本文链接:https://www.haomeiwen.com/subject/eicaqqtx.html