项目中需要与H5进行交互,但是在 iOS调用 js方法时出现问题。一直报错找不到js方法。
一开始以为是移动端中注入的方法 和 js方法名不对。经排查,是一致的。
然后排查 注入方法(通过- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ _Nullable)(_Nullable id, NSError * _Nullable error))completionHandler;
注入)也没有任何问题。
后来发现前端是使用的vue框架,而直接将js方法写在methods
中,这样造成这个交互js方法是局部的,无法被ios端找到。
解决办法:将iOS需要调用的js方法在created
和 mounted
方法中暴露在window下,变成全局方法。
window.printText = this.printText()
如果到这里还不行或者有崩溃,请在window.onload
方法下进行声明
网友评论