在 Phonegap 的 inappbrowser 中禁用缩放按钮

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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);

现在它运行完美。

【讨论】:

以上是关于在 Phonegap 的 inappbrowser 中禁用缩放按钮的主要内容,如果未能解决你的问题,请参考以下文章

addEventListener('exit') 到 PhoneGap 中的 inappbrowser

如何从 InAppBrowser 中调用 Phonegap 插件?

在 InAppBrowser 中使用代理服务器 - PhoneGap

如何在inappbrowser中更改phonegap 3.4中的状态栏颜色?

Phonegap inappbrowser 不工作

Phonegap/Cordova InAppbrowser 文件下载问题