Android 런타임 권한 대화 상자는 새 활동을 만들고 전환하여 표시됩니다. 이 경우 Cordova 활동 (즉, 앱)이 백그라운드로 삽입됩니다 (onPause 이벤트 발생). 사용자가 선택하면 사용 권한 활동이 삭제되고 앱 활동이 포 그라운드로 재개됩니다 (onResume 이벤트 트리거).
전경 활동 변경시 올바르게 호출되기 때문에 onResume 이벤트가 트리거되지 않도록 할 수 없습니다.
당신이 할 수있는 일은 상황을 좀 더 정상적으로 처리하는 것입니다. 이를 수행하는 한 가지 방법은 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();