1

WebView にm.facebook.comを読み込んでいますが、それがどれほど重要かはわかりませんが、WebView は ViewPager 内のコンテナーにあります。

アプリケーションを起動して URL をロードするたびに、次のいずれかの結果が表示されます。

あなたが実際に期待するもの:

ここに画像の説明を入力

しかし、もう 1 つは非常に厄介です。

ここに画像の説明を入力

この 2 つの動作はなぜですか。

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/Site_WebView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

WebView のセットアップ コード:

webView.loadUrl(item.getUrl());
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setUserAgentString("My User Agent - Android");
webView.setWebChromeClient(new WebChromeClient() {});
webView.setWebViewClient(new WebViewClient() {});

アダプターで xml を膨らませ、コンテナーに追加します...

4

2 に答える 2

2

ここですべてのテストに頭を悩ませた後、それが「ユーザーエージェント」であることがわかりました。m.facebook.com.br は、それに費やしたユーザー エージェントとして html / css コードを変更します。

コードから次の行を削除します: settings.setUserAgentString ("My Agent - Android");

そして、すべてがうまくいくでしょう。

于 2014-07-11T17:19:30.247 に答える
1

これが ViewPager とドロワーの間の競合状態ではないことを理解した後、ページを掘り下げたところ、Facebook が気にしないいくつかのパラメーターに従ってページ幅をカスタマイズしていることがわかりました...

後で、ユーザー エージェント スイッチャー拡張機能を Chrome にインストールし、カスタム ユーザー エージェントを使用して再現することができました。

ユーザーエージェントがページにそのような影響を与えるとは思っていませんでした...

しかし、地獄、私はこれまでに 10 億回も間違っていました。

于 2013-09-14T10:00:09.427 に答える