如何在android studio模拟器中启用webgl?

时间:2017-08-07 14:23:22

标签: android webgl

我是用户androidemulatoкштandroidstudio ver 2.3.3 启动模拟器Nexus_6_API_22(android 5.1 api 22)在webbrowser webglreport.com中打开 并看到

enter image description here

请告诉我如何启用webgl。

1 个答案:

答案 0 :(得分:0)

请参阅此页webview support list - html5

您必须在版本36上更新您的webview控件。 更好的是使用chrome frame for android。

另外:https://developer.android.com/guide/webapps/migrating.html

" Android 4.4(API级别19)引入了基于Chromium的新版WebView。 "

public View onCreateView(LayoutInflater inflater,ViewGroup容器,                 Bundle savedInstanceState){

        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        mWebRTCWebView = (WebView) rootView.findViewById(R.id.fragment_main_webview);

        setUpWebViewDefaults(mWebRTCWebView);

        mWebRTCWebView.clearCache(true);

        //Loading page
        mWebRTCWebView.loadUrl(main_url_address);

        mWebRTCWebView.setWebChromeClient(new WebChromeClient() {

            @Override
            public void onPermissionRequest(final PermissionRequest request) {
                Log.d(TAG, "onPermissionRequest");
                getActivity().runOnUiThread(new Runnable() {
                    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
                    @Override
                    public void run() {

                       request.grant(request.getResources());

                    }
                });
            }

        });

        return rootView;
    }



 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
        private void setUpWebViewDefaults(WebView webView) {
            WebSettings settings = webView.getSettings();

            // Enable Javascript
            settings.setJavaScriptEnabled(true);

            // Use WideViewport and Zoom out if there is no viewport defined
            settings.setUseWideViewPort(true);
            settings.setLoadWithOverviewMode(true);

            // Enable pinch to zoom without the zoom buttons
            settings.setBuiltInZoomControls(true);

            // Allow use of Local Storage
            settings.setDomStorageEnabled(true);

            if(Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
                // Hide the zoom controls for HONEYCOMB+
                settings.setDisplayZoomControls(false);
            }

            // Enable remote debugging via chrome://inspect
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                WebView.setWebContentsDebuggingEnabled(true);
            }

            webView.setWebViewClient(new WebViewClient());

            // AppRTC requires third party cookies to work
            CookieManager cookieManager = CookieManager.getInstance();
            cookieManager.setAcceptThirdPartyCookies(mWebRTCWebView, true);

            settings.setUserAgentString("mobile chrome android webgl");

            //JS INTERFACE
           // mWebRTCWebView.addJavascriptInterface(new JS_INTERFACE(getContext()), "android");

        }