2014-10-07 83 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