項(xiàng)目中需要與H5進(jìn)行交互,但是在 iOS調(diào)用 js方法時(shí)出現(xiàn)問題。一直報(bào)錯(cuò)找不到j(luò)s方法甫窟。
一開始以為是移動(dòng)端中注入的方法 和 js方法名不對(duì)。經(jīng)排查蛙婴,是一致的粗井。
然后排查 注入方法(通過- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ _Nullable)(_Nullable id, NSError * _Nullable error))completionHandler;
注入)也沒有任何問題。
后來發(fā)現(xiàn)前端是使用的vue框架敬锐,而直接將js方法寫在methods
中背传,這樣造成這個(gè)交互js方法是局部的呆瞻,無法被ios端找到台夺。
解決辦法:將iOS需要調(diào)用的js方法在created
和 mounted
方法中暴露在window下,變成全局方法痴脾。
window.printText = this.printText()
如果到這里還不行或者有崩潰颤介,請(qǐng)?jiān)?code>window.onload方法下進(jìn)行聲明