我希望在Android Webview中看到3D模型

时间:2016-02-12 08:17:47

标签: android google-chrome

我想在Android Webview中看到3D模型。 很多Android智能手机都可以通过WebView看到3D模型,,一个名为'Galaxy Note Pro 12.2'的产品无法看到。

首先,我给你一些选择。

  1. 我的Chrome(铬)版本为48.0.2564.109。

  2. Android版本为5.0.2(Lollipop)

  3. WebGL是最新版本。

  4. 现在,我给你一些示例代码。

    import android.os.Build;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.webkit.CookieManager;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    
    public class MainActivity extends AppCompatActivity {
    
    private WebView mWebView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mWebView = (WebView) findViewById(R.id.activity_main_webview);
    
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSupportZoom(true);
        webSettings.setBlockNetworkImage(false);
        webSettings.setLoadsImagesAutomatically(true);
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        webSettings.setDomStorageEnabled(true);
        webSettings.setAllowContentAccess(true);
        webSettings.setDatabaseEnabled(true);
        webSettings.setAppCacheEnabled(true);
    
        if(Build.VERSION.SDK_INT >= 19){
            WebView.setWebContentsDebuggingEnabled(true);
        }
    
        webSettings.setUserAgentString("Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile Safari/537.36");
        webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        cookieManager.setAcceptThirdPartyCookies(mWebView, true);
        mWebView.loadUrl("http://threejs.org/examples/#webgl_multiple_renderers");
    }
    
    @Override
    public void onBackPressed() {
        if(mWebView.canGoBack()) {
            mWebView.goBack();
        } else {
            super.onBackPressed();
        }
    }
    
    我认为非常简单的代码。

    我已经设置了权限。 当我使用其他便携式产品(如galaxy智能手机)时,不会出现任何问题。但是,只有以上产品不能。 另外,我已经检查了 chrome:// flags 我读了其他问题,做了一切,但我的问题没有解决。

    我该怎么办? 有没有丢失的支票?

1 个答案:

答案 0 :(得分:0)

Webview没有得到设备的良好支持,我重新使用CrossWalk的XWalkView来取代webview。 XWalkView支持Webview中不支持的设备。

以下是关于如何在XWalkView中使用three.js渲染3D模型的answer

希望它有所帮助。