flutter_webview_plugin與js互動

    最近在使用webview_flutter做安卓的瀏覽器功能,在測試手機模擬器(安卓5.0)一切正常,但拿去現場生產設備(安卓4.4 API19),運行有誤。發現webview_flutter支持API19有誤,只能更換flutter_webview_plugin試試,一切正常。把原來的JS互動的功能轉化:

 

//flutter調用js
final flutterWebViewPlugin = FlutterWebviewPlugin();
final future =flutterWebViewPlugin.evalJavascript("SCANRsult('"+barcode+"')");
      future.then((String result) {
        print('調用js後的返回值...');
      });




_showWEbview() {
    return WebviewScaffold(
      url: url,
      javascriptChannels: jsChannels,
      withZoom: false, 
      withLocalStorage: true,
      withJavascript: true, 
    );
  }


//這裏是js調用flutter
final Set<JavascriptChannel> jsChannels = [
    JavascriptChannel(
        name: 'SetAppTitle6',
        onMessageReceived: (JavascriptMessage message) {
          print(message.message);
        }),
    JavascriptChannel(
        name: 'ScanBarcode',
        onMessageReceived: (JavascriptMessage message) {
          print(message.message);          
        }),
  ].toSet();


//這裏是網頁調用JS,在html裏面
if(window.hasOwnProperty('SetAppTitle6')){
          window.SetAppTitle.postMessage("動態設置標題");  
      }   

這裏有兩個問題:

1)在js調用flutter裏面不能直接使用setState設置內容 ,本人使用even_bus設置

2) webview顯示在最上層,彈出窗口會顯示不出來,這個還沒有解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章