SO 和互联网上有数百篇关于尝试修复 Android 中视口缩放的帖子,我现在相当确定您无法在 Android 4.1 上的 webview 中设置初始比例。
我正在构建一个 Cordova (Phonegap) 应用程序,并且我已经在 iPhone 3GS、4S 和 5 以及运行 iOS7 的 iPhone 3GS 和运行 iOS6 的 3GS 上很好地扩展了所有内容
我还对 UI 进行了缩放,以适应 Moto G、LG Nexus 5、Google Nexus 5 和 Samsung Galaxy S4,它们都运行 Android 4.4
但在运行 Android 4.1 的 Samsung Galaxy S2 和 S3 Mini 上,我无法设置初始比例。
HTML 视口元标记不适用于 4.1 或 4.4(适用于 Chrome,不适用于 WebView 或默认浏览器):
<meta name="viewport" content="user-scalable=no, initial-scale=0.5, width=device-width, height=device-height, target-densitydpi=device-dpi" />
我已经从 cli 中创建了一个绝对基本的 Cordova 项目,cordova create basicProject
,如果我在主 Activity 的 onCreate 方法中添加一些 Java,特别是setInitialScale
method:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
// Set by <content src="index.html" /> in config.xml
super.loadUrl(Config.getStartUrl());
//super.loadUrl("file:///android_asset/www/index.html");
this.appView.setInitialScale( 50 );
}
然后我按照预期得到了 4.4 缩放的 Moto G:
但在 Galaxy S2 上运行的完全相同的项目却无法扩展。
我仅限于在 4.1 的三星设备上进行测试,或者在 4.4 上的一系列设备上进行测试,因此如果有人可以在 4.2 或 4.3 上测试相同的内容,或者在 4.1 上不使用三星的任何人上进行测试,那将会很有帮助。
有谁知道如何让Android 4.1服从setInitialScale()