截至 2016 年 4 月,这些答案已经过时了。我现在必须这样做,所以这是我的经验。
首先,Cordova/Ionic 项目被分割成插件。我们需要的是cordova-plugin-inAppBrowser repo。
第1步
首先,我们必须在本地克隆它或在 github/bitbucket 上 fork 它。(对于每个新项目设置,我们都需要永久克隆的 repo。)我们可以使用以下命令轻松克隆 repo:
git clone git@github.com:apache/cordova-plugin-inappbrowser.git
第2步
然后我们必须对项目进行请求的更改。为了使Android上的 url bar 行为与iOS中相同,我们必须始终显示菜单栏,并且只有在用户请求菜单栏时才显示 url 栏。控制它的代码在/src/android/InAppBrowser.java
文件中。
我们必须更改707-716之间的行。(注意:如果他们修改文件,这些行号可能会改变。)
我们必须从这里更改代码
// Add the views to our toolbar
toolbar.addView(actionButtonContainer);
toolbar.addView(edittext);
toolbar.addView(close);
// Don't add the toolbar if its been disabled
if (getShowLocationBar()) {
// Add our toolbar to our main view/layout
main.addView(toolbar);
}
对此:
// Add the views to our toolbar
toolbar.addView(actionButtonContainer);
if (getShowLocationBar()) {
toolbar.addView(edittext);
}
toolbar.addView(close);
main.addView(toolbar);
所以我们在这里所做的是我们总是添加带有退出/前进/后退按钮的工具栏,并且只有当用户想要完整的栏时才添加 url 栏。这是 iOS 版本的行为。
此外,如果我们想删除前进/后退按钮,因为Android有一个原生的后退按钮,那么我们必须将它们注释掉,并且只有当用户想要完整的菜单栏时才添加它们。所以我们的代码应该是这样的:
// actionButtonContainer.addView(back);
// actionButtonContainer.addView(forward);
// Add the views to our toolbar
toolbar.addView(actionButtonContainer);
if (getShowLocationBar()) {
toolbar.addView(edittext);
// We add this here if the user want the full bar, then we need this buttons.
actionButtonContainer.addView(back);
actionButtonContainer.addView(forward);
}
toolbar.addView(close);
第 3 步
我们必须将修改后的插件添加到我们的项目中,如果您只想要一次,那么只需运行
cordova plugin add https://github.com/username/cordova-plugin-inappbrowser.git
// or
cordova plugin add https://UserName@bitbucket.org/UserName/cordova-plugin-inappbrowser.git
代替
cordova plugin add cordova-plugin-inappbrowser
注意:您必须保留修改后的存储库,因为cordova plugin add
每次设置项目时该命令都会从存储库中获取。