在 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