为什么要写这么低级的话题?
记录下,下次遇到同样的坑,好马上反应过来,不用在这同样的问题上浪费时间。
怎么样的场景下交互?
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设置的代码块就会走了。
网友评论