2016-03-29 15 views

Trả lời

29

Bạn có thể sử dụng cordova-diagnostic-plugin để kiểm tra và yêu cầu quyền runtime Android:

Kiểm tra một phép:

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

Yêu cầu một sự cho phép:

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); 
+0

Hi Dave - sự thành công gọi lại đây chỉ có tham số trạng thái. Điều gì sẽ xảy ra nếu tôi muốn thực hiện một số hành động khác về thành công, chẳng hạn như lưu tệp? Có vẻ như nơi tự nhiên để làm điều đó sẽ nằm trong hàm gọi lại, bởi vì bạn muốn đợi cho đến khi các quyền được xác nhận trước khi lưu, nhưng đó không phải là một tùy chọn. Tôi có nên lưu trữ trạng thái trong tham số chung (yuk) không? Có cách tiếp cận tốt hơn không? –

+0

Mảng Json '['MÁY ẢNH']' thay vì 'cordova.plugins.diagnostic.runtimePermission.CAMERA' nếu không thì nó bị lỗi. – YumYumYum

+1

??? chắc chắn 'cordova.plugins.diagnostic.runtimePermission.CAMERA === cordova.plugins.diagnostic.runtimePermission ['CAMERA']' – DaveAlden

Các vấn đề liên quan