不用這么麻煩啊,直接修改注入的js就可以實現(xiàn)的
比如原來的代碼:
addJavascriptInterface(new MyJsInterface(this), "jsCallApp");
MyJsInterface里面有g(shù)etUserInfo和getDeviceInfo兩個方法
在flutter中js注入的時候可以這么寫:
controller.runJavascript('window.jsCallApp = {'
'getUserInfo: function (data) {window.getUserInfo.postMessage(data);},'
'getDeviceInfo: function (data) {window.getDeviceInfo.postMessage(data);}}');
這樣就可以直接使用flutter_webview自帶的javascriptChannels了
channels.add(JavascriptChannel(
name:"getDeviceInfo",
onMessageReceived: (JavascriptMessage message) {
// 處理原來js方法getUserInfo
}));
channels.add(JavascriptChannel(
name:"getUserInfo",
onMessageReceived: (JavascriptMessage message) {
// 處理原來js方法getUserInfo
}));
如果樓主有其他不引入第三方flutter插件的情況下也能解決這個問題的方法,麻煩告知下
Flutter WebView 是否可以使用addJavascriptInterface常柄?(完美實現(xiàn))----------接去年的那篇文章------------ 因為項目,我一直繞不過這個坑,最近又開始研究這個問題抱婉,之前的方法相當(dāng)于自己重寫Webview,通過Method...