2016-04-18 5 views
1

Nun, ich bin Neuling & fest an einem Punkt. Und das könnte auch eine einfache Lösung haben ..On Back button event Show bestätigen Ja, Nein Option vor dem Schließen der App für window.open mit Cordova InAppBrowser

Ich lade eine Seite mit window.open mit InAppBrowser, Während Benutzer drücken Sie die Hardware-Taste Ich möchte Bestätigungsmeldung anzeigen, bevor App wird in der Nähe. Ich einige Code versucht ... Hier-Code

index.html

$(document).ready(function() { 
    document.addEventListener("deviceready", onDeviceReady, false); 

    function onDeviceReady() { 

     var ref = window.open('http://stackoverflow.com/', '_blank', 'location=no,hardwareback=yes'); 
     ref.addEventListener('loadstart', function(event) { SpinnerPlugin.activityStart("Initializing..."); }); 
     ref.addEventListener('loadstop', function(event) { SpinnerPlugin.activityStop(); }); 
     ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); SpinnerPlugin.activityStop();}); 
     ref.addEventListener('exit', function(event) { 
     alert('Exit') 
     }); 
     ref.addEventListener("backbutton", function() { //But This is not triggering...Don't know why.. 
     onConfirm(); 
     }) 
     function onConfirm(button) { 
      if (button == 1){ //Yes button pressed... 
       navigator.app.exitApp(); 
      } else{ 
       return false; 
      } 
     } 
    } 
}); 

Auch habe ich versucht, backbutton Ereignis von Cordova ..

document.addEventListener("backbutton", onBackKeyDown, false); //Listen to the User clicking on the back button 
function onBackKeyDown(e) { 
    navigator.notification.confirm("Are you sure you want to exit ?", onConfirm, "Confirmation", "Yes,No"); 

} 

Es richtig ausgelöst wird aber nach inneren Fenster schließen .. Also noch einmal kurz, ich möchte das selbe Bestätigungsfeld anzeigen, bevor ich das innere Fenster schließe.

Hinweis: Ich verwende Cordova 6.1.0

Dank-Tonne in-Advance

Antwort

0

ich das versucht, es werde arbeiten,

document.addEventListener("backbutton", function(e){ 
     navigator.notification.confirm("Are you sure you want to exit the application?",fnLogout,"Warning","Ok,Cancel"); 
    }, false); 



function fnLogout(button) { 
    if(button == 1) { 
     navigator.app.exitApp(); 
    } else { 
     return; 
    }      
} 

EDIT: Ich versuchte ur-code, vor dem gleichen Problem,

document.addEventListener("deviceready", onDeviceReady, false); 
document.addEventListener("backbutton", function(e){ 
     navigator.notification.confirm("Are you sure you want to exit the application?",fnLogout,"Warning","Ok,Cancel"); 
    }, false); 
    function onDeviceReady(){ 

     var ref = window.open('http://stackoverflow.com/', '_blank', 'location=no, hardwareback=yes'); 
     ref.addEventListener('loadstart', function(event) { SpinnerPlugin.activityStart("Initializing..."); }); 
     ref.addEventListener('loadstop', function(event) { SpinnerPlugin.activityStop(); }); 
     ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); SpinnerPlugin.activityStop();}); 
     ref.addEventListener('exit', function(event) { // Not Triggered 
     alert('Exit'); 
     }); 
     ref.addEventListener("backbutton", function(event){ // NOT triggered 
      alert('Exit'); 
     navigator.notification.confirm("Are you sure you want to exit the application?",fnLogout,"Warning","Ok,Cancel"); 
    }, false); 

}; 
function fnLogout(button) { 
    if(button == 1) { 
     navigator.app.exitApp(); 
    } else { 
     return; 
    }      
} 

Es ist sehr gut möglich, dass die Zurück-Schaltfläche für den InAppBrowser in PhoneGap nicht überschrieben werden kann. https://cordovablogsblogs.wordpress.com/2016/02/04/handle-android-back-button-on-phonegap-inappbrowser/

Danke:

Try kurze Angaben in untenstehenden Link zu erhalten.

+0

@Leaner: Es wird richtig ausgelöst, aber nach inneren Fenster wird nur geschlossen. Haben Sie versucht, meinen obigen Code mit window.open zu überprüfen? Danke Lerner .. –

+0

@Niks so ur, App direkt zu schließen, ohne den Browser zu schließen? dh. eine einzelne Zurück-Schaltfläche, um den Dialog zum Schließen der Anwendung zu stellen? –

+0

Grundsätzlich Wenn inAppBrowser geladen werden & Benutzer versuchen, backbutton drücken. Der innere Browser wird geschlossen. Was ich will ist, vor dem Schließen inneren Browser-Fenster sollte es bestätigen, ja, nein, dann sollte es fortfahren. –

Verwandte Themen