Cordova InAppBrowser-如何禁用URL和导航栏?

Cordova InAppBrowser-如何禁用URL和导航栏?,cordova,phonegap-plugins,Cordova,Phonegap Plugins,我目前正在构建一个新闻聚合器应用程序,我正在使用InAppBrowser让人们阅读文章。现在,我的问题是:我可以删除URL和导航栏吗?另外,我可以更改“完成”按钮文本吗 请让我知道 谢谢 要删除URL,只需将“位置”选项设置为“否” 在Android上,这会删除“后退/前进”按钮、URL和“完成”按钮,不仅仅是URL,谢天谢地,还有一个特殊的Android专用“hideurlbar”选项只删除URL “完成”按钮文本可以通过添加“CloseButton”选项来更改。 (如果使用InAppBrow

我目前正在构建一个新闻聚合器应用程序,我正在使用InAppBrowser让人们阅读文章。现在,我的问题是:我可以删除URL和导航栏吗?另外,我可以更改“完成”按钮文本吗

请让我知道

谢谢


要删除URL,只需将“位置”选项设置为“

在Android上,这会删除“后退/前进”按钮、URL和“完成”按钮,不仅仅是URL,谢天谢地,还有一个特殊的Android专用“hideurlbar”选项只删除URL

“完成”按钮文本可以通过添加“CloseButton”选项来更改。
(如果使用InAppBrowser插件v2.0.2或更高版本,现在可以在Android上使用。)

在iOS上,可以通过将“工具栏”选项设置为“”来删除工具栏

但是,删除工具栏意味着“后退/前进”按钮和“完成”按钮将不再显示。这使得退出InAppBrowser变得困难

(退出InAppBrowser在Android上不是什么问题,因为如果没有显示“完成”按钮,system back(系统后退)按钮提供了另一种退出方法。)

如果您想保留“完成”按钮,但去掉“后退/前进”按钮,请将“hidenavigationbuttons”选项设置为“yes”(需要InAppBrowser插件v3.0.0或更高版本)

对于较旧的插件版本,您可以手动删除所有InApp浏览器中的“后退/前进”按钮,方法是修改InApp浏览器插件的源代码,如下所示


对于iOS,打开以下文件

YOURAPPNAME/platforms/ios/YOURAPPNAME/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m
YOURAPPNAME/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java
并将以下代码行从更改为:

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

然后使用命令行再次构建项目


对于Android,打开以下文件

YOURAPPNAME/platforms/ios/YOURAPPNAME/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m
YOURAPPNAME/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java
并删除以下代码行:

toolbar.addView(actionButtonContainer);
要同时删除URL,请删除以下代码行:

toolbar.addView(edittext);
然后使用命令行再次构建项目



感谢danw和Vishwani提供了有用的答案。2018年4月使用Cordova 8.0.0、Cordova iOS 4.5.4、Cordova Android 7.1.0和Cordova插件InApp Browser 3.0.0进行测试。如果要完全删除工具栏,可以临时将工具栏高度变量设置为0.0。您将在上面答案的同一个文件中找到它。这不是最好的解决方案,但它会消失。

在3.1.0(?)中,可以使用“工具栏”选项隐藏工具栏

例如:

ref = window.open('http://some.page/foo/', '_blank', 'location=no,toolbar=no');

请参阅:

如果要保留“完成/关闭”按钮并删除其他所有内容,请保留位置=是:

var ref = window.open('http://apache.org', '_blank', 'location=yes');
并在inappbrowser.java文件中进行更改:

toolbar.addView(close);
close.setText("Done");

if (getShowLocationBar()) {
main.addView(toolbar);}
删除editText和ActionButton容器。希望能有帮助

window.open('http://url/', '_blank', 'location=no,toolbar=no');
位置:设置为是或否可打开或关闭InApp浏览器的位置栏

工具栏:设置为是或否可打开或关闭InApp浏览器的工具栏(默认为是)。不过,此接缝仅限于ios

查找所有选项使用:

var options = {
  "location": "no", 
  "toolbar": "no"
};
$cordovaInAppBrowser.open(url, target, options);
const选项:InAppBrowseOptions={
zoom:'否',
hideurlbar:'是',//隐藏url工具栏
hidenavigationbuttons:'是',//向后/向前隐藏导航按钮
}
const browser=this.iab.create(url,“自我”选项);

我试图编辑CDVInAppBrowser.m并运行“cordova build”,然后通过“cordova Simulate ios--target=iPhone-6”在模拟器上部署,但似乎忽略了.m文件中的更改(我看到了“完成”和导航,我希望back/fwd按钮消失)。你能说得更具体些吗?也许在最新的cordova 6.0.0中,插件是通过npm安装的,这不再有效了?如果你能为实际的cordova版本更新答案(已经很好了,谢谢)那就太好了。。。谢谢。谢谢,我刚刚更新了上面的答案,以反映最近的变化,现在应该是最新Cordova版本的准确答案。听起来您可能编辑了错误的“CDVInAppBrowser.m”文件。如果使用Cordova项目根目录下“plugins”文件夹中的插件,更改将不会生效。“平台”文件夹中隐藏的“CDVInAppBrowser.m”需要更改。如何对android执行相同操作?Su android设备工作,但iOS emulator不工作。您好,我刚刚更新了上面的答案,并提供了完整的android详细信息,刚刚用最新的Cordova版本完成了测试。它在iOS和Android上运行良好,有真实的设备和模拟器。如何关闭窗口。打开选项卡?很好,一个调用中有多个选项的示例!!这不管用。上面的答案有效:“location=no,toolbar=no”确保在commaCode前后没有空格,只有通过添加一些关于它们如何工作以及为什么工作的解释,答案才能得到改进。这就是为什么我在代码中添加了注释,请检查
var ref = window.open('http://apache.org', '_blank', 'location=yes');
toolbar.addView(close);
close.setText("Done");

if (getShowLocationBar()) {
main.addView(toolbar);}
window.open('http://url/', '_blank', 'location=no,toolbar=no');
var options = {
  "location": "no", 
  "toolbar": "no"
};
$cordovaInAppBrowser.open(url, target, options);