Androidランタイム権限ダイアログは、新しいアクティビティを作成して切り替えることによって表示されます。この場合、Cordovaのアクティビティ(つまり、あなたのアプリ)はバックグラウンドに置かれます(onPauseイベントを引き起こします)。ユーザーが選択すると、アクセス許可アクティビティが破棄され、アプリケーションアクティビティがフォアグラウンドに再開されます(onResumeイベントがトリガされます)。
したがって、onResumeイベントがトリガされるのを止めることはできません。これは、フォアグラウンドアクティビティの変更時に正しく呼び出されるためです。
あなたができることは、状況をより優雅に処理することです。これを行う1つの方法は、requestLocationAuthorization()のcordova-plugin-diagnosticを使用して自分自身で位置情報の要求を処理することです。たとえば、許可を要求し、許可応答を受信した後、一時的にそれをクリアする前にフラグを設定することにより、再開イベントハンドラは、それがためのパーミッション要求の履歴書されているかどうかを意識
を行うことができます。
var permissionRequestInProgress = false;
document.addEventListener("resume", function(){
if(permissionRequestInProgress){
console.log("Resumed due to permissions request");
}else{
console.log("Resumed due to another reason");
}
}, false);
function requestLocationPermission(){
permissionRequestInProgress = true;
cordova.plugins.diagnostic.requestLocationAuthorization(function(status){
console.log("Permission is " + status);
setTimeout(function(){
permissionRequestInProgress = false;
}, 100);
});
}
requestLocationPermission();