getPermission.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const getPermission = ({ code, name }) => {
  2. return new Promise((resolve, reject) => {
  3. wx.getSetting({
  4. success: (res) => {
  5. if (res.authSetting[code] === false) {
  6. wx.showModal({
  7. title: `获取${name}失败`,
  8. content: `获取${name}失败,请在【右上角】-小程序【设置】项中,将【${name}】开启。`,
  9. confirmText: '去设置',
  10. confirmColor: '#FA550F',
  11. cancelColor: '取消',
  12. success(res) {
  13. if (res.confirm) {
  14. wx.openSetting({
  15. success(settinRes) {
  16. if (settinRes.authSetting[code] === true) {
  17. resolve();
  18. } else {
  19. console.warn('用户未打开权限', name, code);
  20. reject();
  21. }
  22. },
  23. });
  24. } else {
  25. reject();
  26. }
  27. },
  28. fail() {
  29. reject();
  30. },
  31. });
  32. } else {
  33. resolve();
  34. }
  35. },
  36. fail() {
  37. reject();
  38. },
  39. });
  40. });
  41. };
  42. module.exports = {
  43. getPermission,
  44. };