4

アプリケーションに Phonegap を使用しており、InAppBrowser に外部リンクを表示する必要がありますが、戻るボタンが期待どおりに機能していないようです:

var ref = window.open('www.example.com/a.html' , '_blank', 'location=no')

a.htmlページからwww.example.com/b.htmlへのリンクをクリックした後、次にクリックして戻ると、InAppBrowser は閉じられますが、 a.html に戻るはずです

InAppBrowser の「ナビゲーション履歴」を有効にする方法を知っていますか?

ありがとうございました。

4

3 に答える 3

0

戻るボタンをリッスンし (Android を使用していると仮定)、history.back 呼び出しを InAppBrowser に挿入できます。

document.addEventListener("backbutton", function(){
    //do some checks to make sure the browser is open or 
    //whatever else you may need first, then:
    cordova.exec(null, null, "InAppBrowser", "injectScriptCode", ["history.back()"]);
}, false);
于 2013-12-10T19:29:14.993 に答える
0

@Suresh Raja が書いたものに加えて、参照されているコードはもう存在しません。このコードの平和の後に、提案された改善されたコード (以下) を追加できます。

dialog.setInAppBroswer(getInAppBrowser());

提案された改善されたコード:

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {                   
@Override
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
          if (event.getAction()!=KeyEvent.ACTION_DOWN)
              return true;               
          if (keyCode==KeyEvent.KEYCODE_BACK){
              if (inAppWebView.canGoBack()) {
                  inAppWebView.goBack();
              }
              else {
                  closeDialog();
              }
              return true;
          } else {
                return false;
          }
     }
});

これにより、最後のバックプレスでアプリケーションが閉じられます(inAppBrowserの別の問題を解決できます。お役に立てば幸いです

編集:import android.content.DialogInterfaceこの作業を行うには、を追加する必要があります。

于 2014-12-12T23:32:42.397 に答える