2016-12-06 64 views
0

我正在開發一個項目,該項目在本機應用程序中加載Webview。Android WebView - 僅在舊設備上加載頁面(4.1.2)

該應用程序包含一個WebView,它只在舊的Android設備(4.1.2)上正確加載。在新版本(4.4和更高版本)上,視圖保持空白。

我已經嘗試設置混合內容:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); 
} 

,但它不會改變任何東西。與handler.proceed()函數相同。

@Override 
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 
    handler.proceed(); // Ignore SSL certificate errors 
} 

的網站包含了大量的JavaScript,所以我也嘗試過不同的設置,如setDomStorageEnabled等等... 其實環境是測試服務器,所以證書上我們自己的創造。所以我只想測試應用程序,不考慮發佈和可能的問題。但是我沒有在logcat中發現錯誤,所以我真的不知道,還有什麼可能是錯誤的,以及如何進一步調查。

回答

0

我可以推薦你去調試你的新設備。
在這裏,你有一個不錯的sample。 你將能夠調試所有的請求和響應,甚至通過所有那些夢幻般的JS東西看::)

+0

謝謝!從技術上講,由於不贊成使用的方法(StringBufferInputStream)而出現錯誤。使用調試器後,我只在模擬器上看到了消息,並將其更改爲ByteArrayInputStream。現在工作! – a2hur

+0

@ a2hur嗯,它沒有在你的問題中提到。你能否附上這段代碼,因爲老實說,我並沒有完全理解這個關於棄用方法的陳述。 –

+0

Dont工作代碼: 'InputStream stream = new StringBufferInputStream(message); // [...]' 工作代碼: 'ByteArrayInputStream stream = null; \t \t \t \t \t嘗試{ \t \t \t \t \t \t流=新ByteArrayInputStream進行(JsonFile.getBytes( 「UTF-8」)); \t \t \t \t \t}趕上(UnsupportedEncodingException E){ \t \t \t \t \t \t e.printStackTrace(); \t \t \t \t \t} \t \t \t \t \t回報新WebResourceResponse( 「text/plain的」, 「UTF-8」,流);' 正如我問的問題,我thoght我處理的WebView正確我只需要一些更新的Android WebView的附加功能。 通過使用chrome調試器,我收到了一個用於我的流變量的NullPointer。 – a2hur

相關問題