2017-08-07 3 views
0

Puis-je savoir comment créer une boîte de dialogue d'alerte pour demander à l'utilisateur s'il confirme la fermeture de l'inappbrowser à cordova lorsque l'utilisateur appuie sur le bouton de retour matériel? J'ai essayé d'utiliser ref.addEventListener ('exit', onBackKeyDown); pour le faire mais pas réussi. S'il vous plaît aidez-moi et fournissez n'importe quelle solution. Merci beaucoup.Boîte de dialogue d'alerte avant de quitter l'inappbrowser dans Cordova

Répondre

0

utilisez "_blank" au lieu de "_self". L'événement 'exit' ne se déclenchera pas si la source externe est ouverte dans la vue existante.

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'   
      ); 
} 

Hope this vous aide

+0

Je veux avoir la boîte de dialogue avant quitter Google. Je viens d'essayer votre code ... Le dialogue sort après la sortie du site google. – ping94

0

Pour créer une boîte de dialogue d'alerte pour demander à l'utilisateur si elles confirment de quitter le inappbrowser dans cordova lorsque l'utilisateur appuie sur le bouton matériel retour, vous devez:

A) Modifiez InAppBrowserDialog.java situé dans your_project/platforms/android/src/org/apache/cordova/inappbrowser /.
B) Ajouter une importation android.content.DialogInterface; ajouter les importations requises.
C) Modifier la fonction DE 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(); 
    } 
} 

}

À:

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(); 

}