作者:手机用户2502863643 | 来源:互联网 | 2023-08-14 21:59
工程之前用webView封装网页,后面想换成WKWebView,结果一换就出问题了。
之前用webView与js交互
1 2 3 4 5 6 7 8 9 10 11
| - (void)webViewDidFinishLoad:(UIWebView *)webView {
// 设置JavascriptContext上下文
self.jsCOntext= [webView valueForKeyPath:@"documentView.webView.mainFrame.JavascriptContext"];
//将bsg对象指向自身//网页端设置点击方法:bsg.call(),call()方法由bsg对象调用,此处将自身设置为bsg对象,用来调用本地方法而非网页方法
self.jsContext[@"ios"] = self;
self.jsContext.exceptiOnHandler= ^(JSContext *context, JSValue *exceptionValue) {
context.exception = exceptionValue;
NSLog(@"异常信息:%@", exceptionValue);
};
} |
想把webView替换成WKWebView,于是这样写:
1 2 3 4 5 6 7 8 9 10 11 12 13
| -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
// 设置JavascriptContext上下文
self.jsCOntext= [webView valueForKeyPath:@"documentView.webView.mainFrame.JavascriptContext"];
self.jsContext[@"ios"] = self;
self.jsContext.exceptiOnHandler= ^(JSContext *context, JSValue *exceptionValue) {
context.exception = exceptionValue;
NSLog(@"异常信息:%@", exceptionValue);
};
} |
在
1
| self.jsCOntext= [webView valueForKeyPath:@"documentView.webView.mainFrame.JavascriptContext"]; |
这里崩了,想问下WKWebView应该怎么设置才行,没学过js交互,不知道该怎么更改合适。