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