【问题标题】:Disable zoom buttons in Phonegap's inappbrowser在 Phonegap 的 inappbrowser 中禁用缩放按钮
【发布时间】:2014-06-27 05:53:12
【问题描述】:

经过数小时的搜索和尝试不同的事情,我快要放弃了。我想在现在包含在 Phonegap Build 中的 inAppBrowser 中打开一个外部 URL。我用location=no 删除了地址栏(也尝试了toolbar=no,但它没有做任何事情),但是当您滚动页面时出现的缩放(+ 和- 按钮)不会消失。我找不到禁用它的方法,但也许我忽略了一些东西?我只是使用捏缩放,所以我看不出为什么在页面顶部有这些丑陋的按钮(这是专门为这个应用程序设计的)。

那么有没有办法禁用内置缩放按钮?

我正在 Android 上进行测试,但也计划在 iPhone 版本上工作。

【问题讨论】:

    标签: android cordova phonegap-plugins phonegap-build


    【解决方案1】:

    我有同样的问题,但使用 Cordova 而不是 Phonegap Build。 为我做这件事的诀窍是将InAppBrowser.java的第575行更改为settings.setBuiltInZoomControls(false);

    这当然不适用于 iOS,但据我所知,Phonegap/Cordova 没有提供其他构建方式。

    【讨论】:

    • Cordova 5.1.1:{project root}/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java 的第 619 行请注意,这不仅仅隐藏了看起来很古老的 Zoom按钮,但也可以防止捏缩放。
    【解决方案2】:

    试试zoom=no

    您可以找到有关 cordova inappbrowser 插件文档的详细信息:https://github.com/apache/cordova-plugin-inappbrowser

    【讨论】:

    • 这在 Cordova 5.1.1 中不起作用 - 似乎删除了指定缩放控制启用的功能:github.com/apache/cordova-plugin-inappbrowser/pull/104
    • 我发现 zoom=no 参数也不起作用,直到我确保我的页面(inappbrowser 包含的那个)在它的元视口标签中有这个:user-scalable=no
    • 也适用于 Android,至少在 3.0.0+ 版本中
    【解决方案3】:
    <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" />
    

    在 webview 外部页面中使用此元标记谢谢...

    【讨论】:

    • 为什么会这样?知道它为什么工作比代码更重要。
    【解决方案4】:

    使用 InAppBrowser 插件,我遇到了同样的问题。

    我设法隐藏了 +/-“丑陋”按钮,但通过更改 InAppBrowser.java 文件并使用以下命令来保持缩放行为(使用捏合手势):

    WebSettings settings = inAppWebView.getSettings();
    settings.setBuiltInZoomControls(true); // enable built-in zoom mechanisms
    settings.setDisplayZoomControls(false); // disable WebView's zoom controls display
    

    在这里找到它: https://developer.android.com/reference/android/webkit/WebSettings.html#setDisplayZoomControls(boolean)

    【讨论】:

      【解决方案5】:

      这只是移除了缩放按钮,并且仅适用于 IOS:

      在您的项目中打开文件:

      [YourAppName]/platforms/ios/[YourAppName]/Plugins/org.apache.cordova.inappbrowser/src/ios/CDVInAppBrowser.m
      

      从中寻找并改变:

      [self.toolbar setItems:@[self.closeButton, flexibleSpaceButton, self.backButton, fixedSpaceButton, self.forwardButton]];
      

      到这里:

      [self.toolbar setItems:@[self.closeButton, flexibleSpaceButton]];
      

      然后用命令行构建项目。

      【讨论】:

        【解决方案6】:

        试试这个:var authWindow = window.open(authUrl, '_blank', 'location=no,zoom=no,toolbar=no');

        【讨论】:

        • 虽然此代码可能会回答问题,但提供有关 如何 和/或 为什么 解决问题的附加 context 将改善答案的长度长期价值。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。提及为什么这个答案比其他答案更合适也没有什么坏处。
        【解决方案7】:

        转到文件夹结构根}\platforms\android\app\src\main\java\org\apache\cordova\inappbrowser\inappbrowser.java

        然后搜索“zoom”,在每个地方更改它 zoom="false" 它对我有用。

        Cordova 10.0.0,Android Studio 4 ,2021

        【讨论】:

          【解决方案8】:

          看起来选项字符串必须在选项之间没有空格。 我用过:

          var options  = "location=no,zoom=no";
          

          然后进入这里:

          var ref = cordova.InAppBrowser.open('https://treiz.mx', '_blank', options);
          

          现在它运行完美。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-05-10
            • 2013-05-05
            相关资源
            最近更新 更多