【发布时间】:2014-06-16 11:27:18
【问题描述】:
我注意到,任何主要的移动浏览器(chrome、股票浏览器、opera)都可以完美地显示像这个谷歌表单这样的网页,因为用户不能横向滚动但可以垂直滚动。
但是,在我的应用程序的 WebView 中显示了一个更大的窗口,并且可以横向滚动,这是我不想要的。
关于如何做到这一点的任何想法?
编辑: 在弄乱了表单的 html 之后,我意识到如果它检测到屏幕尺寸小于或等于 721 像素,它会将 css 样式表设置为移动版本。所以我猜想我使用的主要浏览器以某种方式“欺骗”网页,使其认为小屏幕设备正在看到它。有人知道怎么做吗?
EDIT2:
我找到了一个相当丑陋的解决方案,方法是在加载完成后将 javascript 注入网页。这是我使用注入的 js 更改的标签:
<link href='/static/forms/client/css/1446748018-mobile_formview_ltr.css' type='text/css' rel='stylesheet' media='screen and (max-device-width: 721px)'>
以及我在应用程序中使用的命令:webView.loadUrl("javascript:document.getElementsByTagName('link')[3].media = 'screen and (max-device-width: 5000px)';");
在这样做时,我将移动 css 样式表应用于网页的最大屏幕宽度设置为高得离谱的值 - 5000 像素。这种方式始终应用移动 CSS。
IMO 这是一个非常草率的解决方案,如果有人有更好的解决方案,请分享
【问题讨论】:
-
您使用的是哪个版本的 Android?某些版本的 WebView 以物理像素报告某些大小,而不是可能混淆页面的 CSS 像素。
-
该应用的目标sdk是18。你知道这个版本是否表达了你写的属性吗?
-
不,它没有。我是在询问您正在测试的手机上的 Android 系统版本(例如 4.4,KitKat)。
-
哦,抱歉。是的,我正在运行 4.4.2,KitKat。
标签: android user-interface android-webview google-forms