2017-08-07 9 views
0

ユーザーがハードウェアの戻るボタンを押したときにコードブラウザのインアプリブラウザを終了するかどうかを確認する警告ダイアログボックスを作成する方法を知っていますか? ref.addEventListener( 'exit'、onBackKeyDown)を使用してみました。それを行うが成功していない。私を助け、解決策を提供してください。どうもありがとうございました。CordovaのInappBrowserを終了する前に警告ダイアログボックスを表示する

答えて

0

"_self"の代わりに"_blank"を使用してください。既存のビューで外部ソースを開いた場合、 'exit'イベントは発生しません。

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

    ref.addEventListener('exit', function(event){ Exit(); }); 

function Exit(){ 
       navigator.notification.confirm(
       'Do you want to exit app?', 
       function(i){ 
        if(i==2) 
        { 
         navigator.app.exitApp(); //This will Close the App 
        } 
       },    
       'App Name',    
       'Cancel,Exit'   
      ); 
} 

ホープこれは、彼らが、ハードウェアの戻るボタンは、あなたが必要とするとき、ユーザープレスコルドバでinappbrowserを終了することを確認するかどうかをユーザーに尋ねる警告ダイアログボックスを作成するには、あなたに

+0

私が終了する前にGoogleにダイアログボックスを持っていると思います。私はあなたのコードを試してみてください...ダイアログは、Googleのウェブサイトを終了した後に出てくる。 – ping94

0

を支援する:

A )yourApplication/platforms/android/src/org/apache/cordova/inappbrowser /にあるInAppBrowserDialog.javaを変更します。
B)import android.content.DialogInterfaceを追加します。必要なインポートを追加します。
C)から、onBackPressed()関数 を変更します。

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

}

TO:

public void onBackPressed() { 
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context) 
    .setTitle("Exit") 
    .setMessage("You are about to exit, are you sure?") 
    .setPositiveButton("Exit", new DialogInterface.OnClickListener(){ 
     public void onClick(DialogInterface dialog, int which){ 
      if (inAppBrowser == null) { 
       dismiss(); 
      } 
      else { 
       // better to go through the in inAppBrowser 
       // because it does a clean up 
       if (inAppBrowser.hardwareBack() && inAppBrowser.canGoBack()) { 
        inAppBrowser.goBack(); 
       } else { 
        inAppBrowser.closeDialog(); 
       } 
      } 
     } 
    }) 
    .setNegativeButton("Cancel", new DialogInterface.OnClickListener(){ 
     public void onClick(DialogInterface dialog,int which){ 
      dialog.cancel(); 
     } 
    }); 
    alertDialogBuilder.create(); 
    alertDialogBuilder.show(); 

}

関連する問題