美文网首页我爱编程
OC与JS交互之UIWebView

OC与JS交互之UIWebView

作者: 十一岁的加重 | 来源:发表于2018-06-20 17:20 被阅读48次

    为什么要写这么低级的话题?
    记录下,下次遇到同样的坑,好马上反应过来,不用在这同样的问题上浪费时间。
    怎么样的场景下交互?


    image.png

    也就是h5会调用一个iosFinished方法,然后原生js阻断下,不知道词用错没。

    - (void)webViewDidFinishLoad:(UIWebView *)webView {
       
        __weak typeof(self) weakSelf = self;
        JSContext *content = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
        content.exceptionHandler = ^(JSContext *con, JSValue *exception) {
            con.exception = exception;
        };
        content[@"iosFinished"] = ^(void) {
            __strong __typeof(self) strongSelf = weakSelf;
            dispatch_async(dispatch_get_main_queue(), ^{
                // 这里写我们要执行的代码
            });
        };
        
    }
    

    调了很久,网页里也打印了其调用了iosFinished方法的alert,说明h5的确调用了这个方法。但是原生就是不能阻断这个方法,说明调用这方法时走了h5的,没有走iOS的。

    结论:

    // 为什么一直没有调用到这个iosFinished,因为前端把这个iosFinished方法自己实现了,
    // 当前端不实现这个方法时,iOS设置的代码块就会走了。
    
    

    相关文章

      网友评论

        本文标题:OC与JS交互之UIWebView

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