我有一个 Android 应用程序,它使用 Cordova 和 WebView 显示从远程 Web 服务器加载的内容(主要是由 PHP/Zend 生成的静态页面)。
我所知道的所有方法都禁用了网页内容的缩放(因为 PHP 根据应用程序发送的分辨率生成布局),但在高清手机(320/480DPI;例如 Samsuns S3/Note、HTC one 等)上,当用户单击链接加载新页面,旧页面的内容被放大,而 WebView 等待服务器的响应(不到 1 秒但仍然看起来很烦人)。
视口设置为不带缩放的设备分辨率:
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
或在 Zend 中定义:
$view->headMeta()->appendName('viewport', 'initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi');
WebView 的缩放功能也被禁用(在 APK 的 InitialActivity 中):
appView.getSettings().setSupportZoom(false);
appView.getSettings().setBuiltInZoomControls(false);
appView.getSettings().setUseWideViewPort(false);
还有几个 JS 库(google-analytics、jQuery 1.9.1、jQuery UI、用于 jQuery 3.0.5 的 Photoswipe),所以我不确定它们中的任何一个是否会导致这种情况。
任何提示可能导致这种情况?
PS:作为最终解决方案,我正在考虑将页面内容隐藏在 onUnload 处理程序中,但我想知道为什么我必须做如此激进的事情。