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中發現錯誤,所以我真的不知道,還有什麼可能是錯誤的,以及如何進一步調查。
謝謝!從技術上講,由於不贊成使用的方法(StringBufferInputStream)而出現錯誤。使用調試器後,我只在模擬器上看到了消息,並將其更改爲ByteArrayInputStream。現在工作! – a2hur
@ a2hur嗯,它沒有在你的問題中提到。你能否附上這段代碼,因爲老實說,我並沒有完全理解這個關於棄用方法的陳述。 –
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