Android WebView 和 WebGL

标签 android webview webgl

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/

相关文章:

Android Webview 视频问题。视频正在 youtube iframe 中被裁剪。

Android imeOptions ="actionDone"不工作

android - 如何在 Android 上使用 DataBinding 测试 MVVM

android - 不同屏幕分辨率的 webview textsize

android - Cordova 是否支持压缩响应?

javascript - 使用 pre3d 的嵌套长方体

java - Android jUnit 测试错误

android - 使用 JSoup 从 WebView 中删除 Div

javascript - 如何使用 gl.lineWidth()

javascript - 如何检测用户是否在浏览器中启用了全屏