首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设备中的WebChromeClient无法工作

设备中的WebChromeClient无法工作
EN

Stack Overflow用户
提问于 2014-08-19 00:26:34
回答 1查看 2.1K关注 0票数 0

我有这个加载webview的代码,它使用了Google的属性。

问题是,仿真器webview加载包含html5的url,并且它工作得很好,但是在使用默认浏览器和html5的属性的安卓设备上,url显然不能工作。

我如何才能在android设备上使用谷歌Chrome浏览器的属性,而不是默认浏览器呢?

有什么帮助吗?

谢谢

代码语言:javascript
复制
public View onCreateView(LayoutInflater inflater, 
            ViewGroup container, Bundle savedInstanceState) {



        // Capturo las variables que dejo en memoria, nombre y email

        SharedPreferences sp1 = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
        emailAdd = sp1.getString("EMAILADDRESS", "");
        name = sp1.getString("NAME", "");

        //-----------------------------------------------


        View x = inflater.inflate(R.layout.patrocinadores, container, false);

        String url = "http://xxxx.co/xxxx/xxxx.php?email="+ emailAdd + "";


        mWebView = (WebView) x.findViewById(R.id.webView1);


        // Para colocar un loading

        pd = ProgressDialog.show(getActivity(), "", "Loading...",true);

        //--------------------------

        if(mWebView != null){

            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
            mWebView.getSettings().setAppCacheEnabled(false); 
            mWebView.getSettings().setAllowFileAccess(true);
            mWebView.getSettings().setAllowContentAccess(true);



            mWebView.loadUrl(url);
            mWebView.setWebChromeClient(new WebChromeClient());

            mWebView.setWebViewClient(new WebViewClient() {



                // Coloca un loading mientras se carga el webview y se quita cuando se carga la pagina


                public void onPageFinished(WebView view, String url) {
                    if(pd.isShowing()&&pd!=null)
                    {
                        pd.dismiss();
                    }
                }

                //-----------------------------------------------


                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
            });
        }

        return x;
    }
EN

回答 1

Stack Overflow用户

发布于 2014-08-19 01:17:58

我不确定我是否确切地理解了您所指的内容,但是HTML5是受支持的,如果您已经考虑了一些项目,那么应该在您的应用程序中工作。

首先,WebChromeClient()并不是指Google,而是原始的Chrome术语,它代表了网页周围的UI元素(IE、按钮、滚动条等)。从这个意义上说,您可以像对JavaScript那样实现自己的WebChromeClient(),从而覆盖某些默认行为,如WebChromeClient()弹出窗口/通知、标题和其他窗口功能。

您可以在这里看到另一个定义:https://developer.mozilla.org/en-US/docs/Glossary/Chrome

此外,如果您指的是缩放和布局,那么我将向您介绍WebView概述,特别是像素完美用户界面。例如,设置视图端口和概述模式:

代码语言:javascript
复制
mWebView.getSettings().setUseWideViewPort(true)
mWebView.getSettings().setLoadWithOverviewMode(true)

编辑:

进度条不像预期的那样工作。在设置客户端之后,尝试调用mWebView.loadUrl(url)

代码语言:javascript
复制
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient(){...});
mWebView.loadUrl(url);

并在onPageStarted()中重写WebViewClient()

代码语言:javascript
复制
@Override
public void onPageStarted (WebView view, String url, Bitmap favicon) {
    pd.show();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25373999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档