Pet*_*ete 4 android viewport webview cordova initial-scale
在SO和其他互联网上有数百篇关于尝试在Android中修复视口缩放的帖子,我现在相当确定你无法在Android 4.1的webview中设置初始比例.
我正在构建一个Cordova(Phonegap)应用程序,我已经在iPhone 3GS,4S和5以及iPad 2上完成了所有功能,在iOS6上运行iOS7和3GS
我还推出了适合Moto G,LG Nexus 5,Google Nexus 5和三星Galaxy S4的UI,全部运行Android 4.4
但是在运行Android 4.1的三星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 create basicProject删除了一个绝对基本的Cordova项目,如果我在主Activity中的onCreate方法中添加了一些Java,特别是setInitialScale方法:
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()
您应该能够在网页中添加一些javascript,以便在您的网页浏览获取内容时扩展内容.下面是一个示例,它将缩放您的html内容,以便内容适合屏幕的可用宽度:
function customScaleThisScreen() 
    var contentWidth = document.body.scrollWidth, 
        windowWidth = window.innerWidth, 
        newScale = windowWidth / contentWidth;
    document.body.style.zoom = newScale;
}
这将适用于旧的(4.2之前的)和更新的基于铬(4.2+)的webview.
HTHS
| 归档时间: | 
 | 
| 查看次数: | 9597 次 | 
| 最近记录: |