0

Google Chrome のプロパティを使用する Loading webview を含むこのコードがあります。

問題は、エミュレーターの webview が html5 を含む URL をロードし、それが完全に機能することですが、Android デバイスではデフォルトのブラウザーのプロパティを使用し、html5 は明らかに URL を機能させません。

デフォルトのブラウザーではなく、Google Chrome ブラウザーのプロパティを使用するために、Android デバイスの webview をどのように使用できますか?

何か助けはありますか?

ありがとうございました

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;
    }
4

1 に答える 1

0

あなたが言及していることを正確に理解しているかどうかはわかりませんが、HTML5 はサポートされており、いくつかの項目を説明していれば、アプリケーション内で動作するはずです。

まず、WebChromeClient()Google Chrome ブラウザーを指すのではなく、Web ページを取り巻く UI 要素 (IE、ボタン、スクロール バーなど) を表す元のChrome用語です。. _ WebChromeClient()_WebViewClient()

ここで他の定義を確認できます: https://developer.mozilla.org/en-US/docs/Glossary/Chrome

さらに、スケーリングとレイアウトについて言及している場合は、WebView の概要、特にPixel-Perfect UIを参照してください。たとえば、ビュー ポートと概要モードを設定します。

mWebView.getSettings().setUseWideViewPort(true)
mWebView.getSettings().setLoadWithOverviewMode(true)

編集:

プログレス バーが期待どおりに機能しません。mWebView.loadUrl(url)クライアントを設定したら、呼び出してみてください。

mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient(){...});
mWebView.loadUrl(url);

onPageStarted()そして、内でオーバーライドしますWebViewClient():

@Override
public void onPageStarted (WebView view, String url, Bitmap favicon) {
    pd.show();
}
于 2014-08-19T01:17:58.653 に答える