1

我在我的 WebView 中加载m.facebook.com,不确定这有多重要,但 webview 位于 ViewPager 内的容器中。

每次我启动应用程序并加载 URL 时,我都会看到以下结果之一:

您实际上期望的一种:

在此处输入图像描述

但另一个相当令人不安:

在此处输入图像描述

为什么会有这两种行为?

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 上安装了用户代理切换器扩展,并且能够使用我的自定义用户代理来重现它。

我没想到用户代理会对页面产生这样的影响......

但见鬼,我以前错了十亿次!

于 2013-09-14T10:00:09.427 回答