2016-09-20 127 views
2

我正在使用類似於https://github.com/evgenyneu/js-evaluator-for-android的WebView在WebView中執行javascript,並使用@JavascriptInterface註釋方法將結果返回給java。JavascriptInterface不適用於Android 5

我在一個使用dexguard模糊處理的庫項目中執行此操作。

這是Android上的7,6和5,我還使用該庫在Android應用程序工作正常,它的工作原理使用ProGuard時除外,它停止工作在Android上5,但仍適用於Android 6

我的目標是SDK 24,最小值是8,但代碼只能在21以上使用。 @JavascriptInterface註釋和所有的類都免於混淆,但是,這仍然不適用於Android 5和6.它在7上工作。

任何想法我做錯了什麼?

後甚至更多的測試,我可以斷定,它開始工作時釋放我讓我釋放buildtype可調試:

release { 
     minifyEnabled true 
     debuggable true 
} 
+0

有沒有張貼在您logcat的任何錯誤? – fakataha

+0

沒有重要性。問題是,我在服務中使用了js-evaluation-for-android,並且在加載頁面之前,一些webview版本會檢查您是否在主循環中。我不得不在主要活套上運行代碼來解決這個問題。 – Elias

+0

@Elias:你有解決這個問題嗎?至於爲什麼它不工作。我面臨同樣的問題。謝謝 – Neha

回答

0

的問題是,我是在一個服務做這個,有的網頁流量實現檢查如果你在主要的活套上跑步。

一個解決方案,我正在執行它的主尺蠖:

this.handler = new Handler(Looper.getMainLooper()); 
this.handler.postDelayed(new Runnable() 
    { 
     @Override 
     public void run() 
     { 
      // create a webview 
      final WebView webView = new WebView(context); 

      // etc 
     } 
    }); 
相關問題