requestPermissions.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * 申请权限
  3. *
  4. * @param {Object} permissions
  5. */
  6. export function requestPermissions(permissions) {
  7. return new Promise((resolve, reject) => {
  8. plus.android.requestPermissions(permissions, function (e) {
  9. if (e.deniedAlways.length > 0) { //权限被永久拒绝
  10. // 弹出提示框解释为何需要定位权限,引导用户打开设置页面开启
  11. console.log('Always Denied!!! ' + e.deniedAlways.toString());
  12. return reject({
  13. code: -1,
  14. message: '权限被永久拒绝',
  15. deniedAlways: e.deniedAlways
  16. });
  17. }
  18. if (e.deniedPresent.length > 0) { //权限被临时拒绝
  19. // 弹出提示框解释为何需要定位权限,可再次调用plus.android.requestPermissions申请权限
  20. console.log('Present Denied!!! ' + e.deniedPresent.toString());
  21. return reject({
  22. code: -2,
  23. message: '权限被临时拒绝',
  24. deniedAlways: e.deniedPresent
  25. });
  26. }
  27. if (e.granted.length > 0) { // 权限被允许
  28. // 调用依赖获取定位权限的代码
  29. console.log('Granted!!! ' + e.granted.toString());
  30. return resolve();
  31. }
  32. }, function (e) {
  33. console.log('Request Permissions error:' + JSON.stringify(e));
  34. reject(e);
  35. });
  36. });
  37. }