【问题标题】:Phonegap Zoom LevelPhonegap 缩放级别
【发布时间】:2012-01-23 20:54:38
【问题描述】:

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

使用 Meta viewport 标签更改缩放: 启用:

 <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 中)设置缩放级别? (目前我正在刷新文档,可行,但它可能是处理它的最慢的方法)

【问题讨论】:

    标签: android ios jquery-mobile cordova


    【解决方案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"> 
    

    【讨论】:

    • 感谢您的发帖,但我正在寻找一种方法来控制 javascript 的缩放,这样我就不必为 Android 和 IOS 重做代码/项目。
    • 这不是我想要的(当然它不能用于 IOS),但它确实解决了 Android 中的问题。在 android 中,您无论如何都必须进行自定义构建。
    • webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);全屏
    • @micred 当我重定向到另一个页面表单 index.html 时缩放不起作用
    猜你喜欢
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2019-06-04
    • 2015-09-18
    • 2012-08-15
    相关资源
    最近更新 更多