Android WebView:WebGL 在某些设备上不工作
我在我的 android 应用程序中使用 Webview。任务是在屏幕上添加 WebGL 交互元素。 应用程序有 minSdk v21。谷歌宣布他们在 WebView v36 中支持 WebGL。我使用 html5test.com 页面和我的测试网页检查 WebGL 状态。
我的测试设置: Google Nexus 6P - Android 6.0.1,webView v48 - WebGL 正常运行
Sony Xperia Z2 - Android 5.1.1,webView v48 - WebGL 正常运行
三星 Galaxy Note 4 - Android 5.1.1,webView v48 - WebGL 正常运行
Samsung Galaxy Tab S - Android 5.0.2,webView v48 - WebGL 失败黑屏
RKM V5 Android TV - Android 5.1.1,webView v39 - WebGL 失败黑屏
我在谷歌开发者文档中没有看到关于 android.webkit.WebView 元素的任何信息 有什么方法可以在所有设备上工作吗?
我的 webView 初始化:
mElementView = new WebView(mContext);
mElementView.setVerticalScrollBarEnabled(scrollEnabled);
mElementView.setHorizontalScrollBarEnabled(scrollEnabled);
mElementView.getSettings().setJavaScriptEnabled(true);
mElementView.getSettings().setAllowUniversalAccessFromFileURLs(true);
mElementView.getSettings().setAllowFileAccessFromFileURLs(true);
更新:WebGL 在所有设备的 Chrome 浏览器中工作,但在 Galaxy Tab 和 Android TV webViews 中失败
最佳答案
晚了,但我认为这对某人有帮助。
在使用 webView
的 Activity 中,在 androidmanifests set 中设置:android:hardwareAccelerated="true"
。
我的 webView
看起来像这样:
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setLoadsImagesAutomatically(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
webView.getSettings().setAllowFileAccessFromFileURLs(true);
}
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebChromeClient(new WebChromeClient());
关于Android WebView 和 WebGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35746920/