Phonegap Zoom Level

时间:2012-01-23 20:54:39

标签: android ios jquery-mobile cordova

我有一个手机间隙应用程序,可以动态启用/禁用缩放。该应用程序允许在具有详细图表的页面上进行缩放,并且对于应用程序的其余部分禁用缩放。

使用Meta视口标记更改缩放: 启用:

 <meta id="viewport" name="viewport"
        content="initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0, user-scalable=yes" />

已停用:

 <meta id="viewport" name="viewport"
        content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />

我的问题是,用户可以放大,然后转到已禁用缩放的页面。在这里,他们将被锁定在放大的水平。

我找到了如何在这里发现问题:

Safari iPhone - How to detect zoom level and offset?

但是有没有办法以编程方式,最好是在JavaScript中(为了保持phonegap应用程序跨平台而无需自定义工作),设置缩放级别? (目前我正在刷新文档,这有效,但它可能是处理它的最慢的方法)

1 个答案:

答案 0 :(得分:1)

关于Android,您可以通过编程方式从直接访问WebView对象的本机代码(java)更改缩放。

例如:

appView = (WebView) findViewById(R.id.appView);
appView.setInitialScale( (int)globalScale );
appView.getSettings().setSupportZoom( true );
appView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
appView.getSettings().setUseWideViewPort(true);
...

如果您需要从javascript触发缩放修改,我建议您编写自己的Phonegap插件(这不是太难)将javascript代码绑定到直接访问WebView对象的本机代码。

请记住,我认为您应该避免为HTML的元标记指定额外的属性,否则他们可以覆盖WebView设置。只需

<meta name="viewport" content="target-densitydpi=device-dpi">