【发布时间】:2018-01-03 01:54:10
【问题描述】:
我最近构建了一个应用程序,它使用全屏网络视图来加载我不拥有的网站。 (因此,没有控制站点代码)
我需要 webview 来显示网站的桌面版本,而桌面 http 标头欺骗并没有起到作用。我发现,由于网站的响应式设计规则,决定网站发送移动设备还是桌面设备的是视口大小。
在我的 Pixel XL 上,此代码使页面看起来正确:
webview_chart.getSettings().setLoadWithOverviewMode(true);
webview_chart.setInitialScale(200);
webview_chart.getSettings().setUseWideViewPort(false);
webview_chart.getSettings().setMinimumFontSize(16); String newUA= "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19";
webview_chart.getSettings().setUserAgentString(newUA);
webview_chart.loadUrl("http://tradingview.com/chart");
这里似乎很关键的三件事是
- WideViewPort 必须为 false(否则我会获得移动视图)
- InitialScale = 200 使它在我的设备上显示桌面,但看起来很小而且很远。因此:
- MinimumFontSize = 16。
现在,这会使我的手机和其他屏幕尺寸相似的设备看起来一切正常,但较小的屏幕会出现问题。
在我妻子的原始 Moto X 上,InitialScale 200 仍然提供移动站点。将其更改为 150 并稍微减小字体大小使它在 Moto X 上看起来很完美,但在 Pixel 上,东西太小而且间隔很远,好像所有东西的边距都更大。
如何让这个 webview 在不同的屏幕尺寸下正确显示?我什至不确定我使用的代码是否是实现这一壮举的最佳实践。我只是将它一起破解,发现它可以显示大小合适的桌面视图(深夜反复试验)。但事实证明它不适用于其他屏幕尺寸。 在处理网站的响应式设计规则时,我可以进行哪些更改以使其具有灵活性、适应性或响应性?
【问题讨论】:
标签: android android-webview responsive-design-view