2014-10-07 81 views
2

我写的用科尔多瓦3.6的移动应用程序,这个应用程序只需要打开相应的到我的网站使用Cordova 3.6的InAppBrowser窗口中的后退按钮行为?

var ref = window.open('http://www.stackoverflow.com', '_self', 'location=no'); 

的移动版本的外部URL如果使用_self为目标,后退按钮的行为是好的印版因为它可以在浏览页面中正常工作,但问题是历史堆栈中的最后一页返回到我的索引页面,然后再次打开我的URL!此外,窗口上的事件也不起作用。如何退出?

var ref = window.open('http://www.stackoverflow.com', '_blank', 'location=no'); 

如果使用_self作为目标,后退按钮的行为是不一样的。在浏览过的页面中不可能有任何背景,只要回到索引页面就可以了。我如何修改行为与_self相同?

我坚持这两个解决方案:(

注:我看到这个similar question但建议代码

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 
        public void onDismiss(DialogInterface dialog) {  
         closeDialog(); 
        } 
}); 

科尔多瓦InAppBrowser.java不再存在,没有更多的存在

回答

3

我找到了使用科尔多瓦3.6的“_blank”选项目标的工作解决方案,这要归功于Kris Erikson的解答this post

通过这些修改,硬件后退按钮可在InAppBrowser中的页面内工作。

我以后他的工作液

转到复制到的src/COM /组织/阿帕奇/ corodova/inappbrowser目录并编辑InAppBrowserDialog.java: 变化

public void onBackPressed() { 
    if (this.inAppBrowser == null) { 
     this.dismiss(); 
    } else { 
     // better to go through the in inAppBrowser 
     // because it does a clean up    
     this.inAppBrowser.closeDialog();   
    } 
} 

public void onBackPressed() { 
    if (this.inAppBrowser == null) { 
     this.dismiss(); 
    } else { 
     if (this.inAppBrowser.canGoBack()) { 
     this.inAppBrowser.goBack(); 
     } else { 
     this.inAppBrowser.closeDialog(); 
     } 
    } 
} 

然后进入InAppBrowser并找到goBack功能,更改:

/** 
* Checks to see if it is possible to go back one page in history, then does so. 
*/ 
private void goBack() { 
    if (this.inAppWebView.canGoBack()) { 
     this.inAppWebView.goBack(); 
    } 
} 

/** 
* Checks to see if it is possible to go back one page in history, then does so. 
*/ 
public void goBack() { 
    if (this.inAppWebView.canGoBack()) { 
     this.inAppWebView.goBack(); 
    } 
} 

public boolean canGoBack() { 
    return this.inAppWebView.canGoBack(); 
} 

如果你找到一个更好的解决方案,避免修改Java代码

+0

的伟大工程,请张贴。谢谢! – tbutcaru 2015-01-29 11:42:23

+0

好的! Adobe怎么会错过那个? – 2015-02-24 06:06:17

+1

@Crio我有同样的问题,但上面的代码不适用于cordova 4.0。 可以请你提出一些建议。 – umesh 2015-07-15 14:05:34