美文网首页
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