web-dev-qa-db-ja.com

Android WebView VS Phone Browser

WebViewAndroidを使用することで多くの奇妙な動作を経験しましたが、各携帯電話にインストールされているWebViewBrowserの間に多くの違いがあるのはなぜですか?

例として、jquery-mobileHTMLflash、YouTube埋め込みなどを含むjavascriptコンテンツを表示する必要があるアプリケーションをいくつか開発しました。そのため、WebViews内にこのページを表示する際に多くの問題がありました。それらはまったく表示されないか、単に空白になるか、ビデオが再生されないか、などです。そして奇妙なことに、電話にインストールされているBrowserで開いた場合、それらは正しく動作します。 JavaScriptを有効にして、別の WebSettings を試しました WebChromeClientWebViewClient を設定してJavaScriptエラーを探しましたが、何も動作しませんでした。

したがって、WebViewコンポーネントは、電話にインストールされているBrowserアプリケーションとは完全に異なるという結論に達しました。私はすべてのメーカーが可能な限り多くのページをサポートするために独自のBrowserを作成し、WebViewAndroid SDKに含まれる標準のページのままであると考えています。

私は正しいですか?または、これには別の理由/説明がありますか?ありがとう。

編集: @ondoteamが提案したものはすべて、現時点で有効になっており、設定されています。いずれにせよ内部のWebサイトへの参照はもうありません。

35
Ovidiu Latcu

この記事では、メーカー間の在庫ブラウザの違いに関する憶測の概要を説明しますが、それは絶対に当てはまります。 5現実は、Android webkit

...これは問題を引き起こし、神秘的で問題を診断/解決するのが困難です。

WebView実装の問題に関する限り:

_jquery-mobile_のバージョンが問題である可能性があります jquery-mobileがAndroid WebView にロードされている場合_jquery.mobile-1.0.1.min.js_を使用している場合は、圧縮解除してみてください_jquery.mobile-1.0.1.js_

そしてフラッシュ:-/頑張って: フラッシュでウェブビューを使用すると画面が点滅する

WebViewのFlashがAndroid 3.2 で機能しない

Android 3.0.1 のWebViewにFlashビデオが表示されない

SWFをロードする場合:

SWFをWebViewにロードする

Androidでフラッシュファイル(.swf)Webviewをロードしています

それがうまくいくと、デバイスやAndroidバージョンなどの多くの変数のように思われます。試行錯誤しながら永続化します。

14
TryTryAgain

ストックブラウザとWebViewは異なります。次のようなすべての調整を使用します

            WebView browser;

            browser.clearFormData();
    browser.clearHistory();
    browser.clearCache(true);

    browser.getSettings().setAppCacheEnabled(true);
    browser.getSettings().setDatabaseEnabled(true);
    browser.getSettings().setDomStorageEnabled(true);
    browser.setWebChromeClient(new WebChromeClient());

それでも、Androidブラウザによって完全に適切に読み込まれている高解像度の画像は適切に読み込まれません。通常のAndroidブラウザー。この動作は最新のAndroid 4X SDKでも発生します。つまり、Androidデフォルトのブラウザーはwebkit/webviewコードを大幅に微調整しますURLを表示する

8
Vatsal Desai

WebViewはデフォルトで制限されています。まともなブラウジングエクスペリエンスを得るには、setWebChromeClientと家族に電話する必要があります。さらに、setJavaScriptEnabled()やその他の同様のものを忘れないでください。簡潔に申し訳ありません...例は必要ないと思います。

http://developer.Android.com/reference/Android/webkit/WebView.html

8
ondoteam

この質問を確認しましたか: jquery-mobileがAndroid WebView にロードされました

間違ったライブラリを使用している可能性があります。どんな場合でもチェックしてください。

1
bytebiscuit