2

簡潔に言うと、Android WebView がカバーの下でどのように機能するかを知りたいです。私はインターネットを精査しましたが、webview クラスの内部構造について説明している記事やリソースが見つかりません。基本的には、ブラウザーで Web ページを表示するためのエミュレーターですよね?

これは、Android ブラウザのように厳密なクライアント サーバー関係を採用していることを意味するのでしょうか、それともそれよりも複雑なのでしょうか?

Web ページが Android ブラウザーで完全に表示されるのに、Android アプリ内から webview 経由で開くとサーバー側のエラーが発生する理由はありますか? つまり、webview はサーバー側のコード エラーを引き起こす可能性がありますか?

ありがとうございました。

4

3 に答える 3

2

あなたの質問は、他の人が対処した多くの誤解に基づいているようです。

代わりに、他の人が見落としていることについてコメントします。

デフォルトの Android ブラウザはwebview と同じエンジンに基づいていますが、十分に文書化されていない / 非公開 API の方法で大幅に拡張されており、実際には動作が異なります。そうです、何かがデフォルトのブラウザーで機能するのに、webview では機能しない理由はたくさんあります。これらの違いのいくつかは、webview の構成オプションで簡単に修正できますが、他のものは非常に扱いにくいものであり、代替ブラウザーのソースを調べて、Android バージョン間で移植可能なソリューションを見つける必要がある場合があります (ブラウザーが行う方法と同様)。ビルド対象の特定のバージョンに結合されています)。

クライアントの動作の違いによってサーバー側でエラーが発生するかどうかは、サーバーがクライアントに関してどのような想定を行っているか、および予期しないクライアントの動作に対するサーバーの堅牢性に依存します。

于 2012-06-19T16:16:04.030 に答える
1

基本的には、ブラウザーで Web ページを表示するためのエミュレーターですよね?

Web ブラウザーが「ブラウザーで Web ページを表示するためのエミュレーター」である場合に限ります。WebViewは、Safari、Chrome などの中心にある WebKit Web アセットの取得およびレンダリング エンジンです。

それは、Android ブラウザーのように、厳密なクライアント サーバー関係を採用しているということですか。

AOSP Android ブラウザー、および Opera と Mozilla 以外のほとんどの Android ブラウザーは WebView . したがって、WebViewサーバー側での の使用から見られる動作は、通常、 の他のユーザーと見分けがつかないはずですWebView

つまり、webview はサーバー側のコード エラーを引き起こす可能性がありますか?

他のブラウザと同じです。

于 2012-06-19T16:09:38.650 に答える
1

Web ビューを考える最良の方法は、アドレス バーのないネイティブ Web ブラウザーであるということです。HTML、CSS、javascript などを通常のブラウザとまったく同じ方法でレンダリングします。

Google がネイティブ ブラウザを作成し、そのコードを無視して、それを SDK の webview に拡張しない理由がわかりません。

于 2012-06-19T14:29:06.443 に答える