我正在网站上工作(抱歉,我无法发布),还有一个移动应用程序。移动应用程序实际上是网站的一部分,我们使用Java WebView来访问它。当我从任何移动浏览器(Chrome,Safari,甚至Android的默认浏览器)访问移动应用程序时,移动应用程序的样式都很好,但是当我使用移动应用程序时,一切都变得更大。如果您尝试从桌面浏览器访问移动页面,那么所有内容都基本上都是按照您的方式设置的。以下是初始化Web视图的代码:
private void initWebView() {
if (mWebView == null) {
mWebView = new WebView(this);
mWebView.setWebViewClient(new CustomWebViewClient());
mWebView.setWebChromeClient(new CustomWebChromeClient());
mWebView.getSettings().setJavaScriptEnabled(true);
}
//setContentView(R.layout.activity_main);
setContentView(mWebView);
}
根据我的研究,最常见的建议/建议是确保启用JavaScript(它是),并设置用户代理字符串。在测试默认用户代理字符串是什么之前,我尝试将用户代理字符串设置为多个(全部失败)。如果我没有设置用户代理字符串,则默认值为Mozilla/5.0 (Linux; Android 5.1; Android SDK built for x86 Build/LKY45) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
。这是Android默认浏览器使用的完全相同的用户代理字符串,并且移动网站的样式在那里工作正常。
我还将CustomWebViewClient替换为常规WebViewClient,将CustomWebChromeClient替换为常规WebChromeClient,并获得相同的结果。因此,自定义对此没有影响。
我还将移动应用的主页网址更改为https://www.google.com
,看看它是否能够加载网站的移动版本,并且成功了。
所以我排除了JS,用户代理字符串,我们所做的自定义,并且在检查Google之后我认为它甚至可能不是移动应用程序,而是网站。现在我被卡住了。我不知道该怎么做了。
可能导致我们的移动应用程序(使用Java WebView)正确加载Google的移动网站,而不是我们的网站(在所有其他移动浏览器上加载得很好)?
答案 0 :(得分:2)
补充说:
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);