vue项目 iOS调用JS方法报错找不到方法

JavaScript012

vue项目 iOS调用JS方法报错找不到方法,第1张

项目中需要与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 方法下进行声明

定义Vue全局方法。

main.js中定义:Vue.prototype.myfunction = function() {/*你的自定义Vue方法*/}

子组件调用:this.myfunction()

定义Window对象全局方法。

在main.js中定义:window.myfunction = function() {/*你的自定义函数*/}

子组件调用:myfunction()