Można użyć cordova-diagnostic-plugin sprawdzić i poprosić Android uprawnienia wykonywania:
Sprawdź uprawnienia:
cordova.plugins.diagnostic.getPermissionAuthorizationStatus(function(status){
switch(status){
case cordova.plugins.diagnostic.runtimePermissionStatus.GRANTED:
console.log("Permission granted to use the camera");
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.NOT_REQUESTED:
console.log("Permission to use the camera has not been requested yet");
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED:
console.log("Permission denied to use the camera - ask again?");
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED_ALWAYS:
console.log("Permission permanently denied to use the camera - guess we won't be using it then!");
break;
}
}, function(error){
console.error("The following error occurred: "+error);
}, cordova.plugins.diagnostic.runtimePermission.CAMERA);
Poproś o pozwolenie:
cordova.plugins.diagnostic.requestRuntimePermission(function(status){
switch(status){
case cordova.plugins.diagnostic.runtimePermissionStatus.GRANTED:
console.log("Permission granted to use the camera");
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.NOT_REQUESTED:
console.log("Permission to use the camera has not been requested yet");
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED:
console.log("Permission denied to use the camera - ask again?");
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED_ALWAYS:
console.log("Permission permanently denied to use the camera - guess we won't be using it then!");
break;
}
}, function(error){
console.error("The following error occurred: "+error);
}, cordova.plugins.diagnostic.runtimePermission.CAMERA);
Hi Dave - callback sukces właśnie tutaj przyjmuje parametr statusu. Co się stanie, jeśli chcę podjąć inną akcję dotyczącą sukcesu, na przykład zapisać plik? Wydaje się, że to naturalne miejsce, w którym można to zrobić wewnątrz funkcji wywołania zwrotnego, ponieważ chcesz poczekać, aż uprawnienia zostaną potwierdzone przed zapisaniem, ale to nie jest opcja. Czy powinienem przechowywać status w parametrze globalnym (yuk)? Czy istnieje lepsze podejście? –
Json array '['CAMERA']' zamiast 'cordova.plugins.diagnostic.runtimePermission.CAMERA' else nie powiedzie się. – YumYumYum
??? z pewnością 'cordova.plugins.diagnostic.runtimePermission.CAMERA === cordova.plugins.diagnostic.runtimePermission ['CAMERA']' – DaveAlden