美文网首页我爱编程
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