werun.tsx 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import Taro from "@tarojs/taro";
  2. export const setAuth = (getRunData: Function, refuseAuth: Function) => {
  3. Taro.getSetting({
  4. success: res => {
  5. //第一步,检测是否有授权 - 没有授权
  6. if (!res.authSetting['scope.werun']) {
  7. //第二步,开始授权,但这里有一个坑点(腾讯的bug),之前授权过但是是拒绝,所以会进入失败
  8. Taro.authorize({
  9. scope: 'scope.werun',
  10. success: () => {
  11. console.log("授权了")
  12. getRunData()
  13. },
  14. fail: () => {
  15. Taro.showModal({
  16. title: '提示',
  17. content: '检测到您没有打开微信运动的权限,是否去设置打开?',
  18. success: res => {
  19. if (res.confirm) {
  20. Taro.openSetting({
  21. success: res => {
  22. if (res.authSetting['scope.werun']) {
  23. console.log("授权了")
  24. getRunData()
  25. // this.getRunData();
  26. } else {
  27. refuseAuth()
  28. Taro.showToast({
  29. title: '您已拒绝授权,无法获取步数',
  30. icon: 'none'
  31. });
  32. }
  33. }
  34. });
  35. } else {
  36. refuseAuth()
  37. Taro.showToast({
  38. title: '您已拒绝授权,无法获取步数',
  39. icon: 'none'
  40. });
  41. }
  42. }
  43. })
  44. //第三步,引导用户,手动引导用户点击按钮,去设置页开启,## Modals是自定义组件
  45. // this.$invoke('Modals', '__modalConfirm__', [
  46. // '检测到您没有打微信运动的权限,是否去设置?',
  47. // 'openSetting',
  48. // //第四步,进入设置页的回调 - 成功
  49. // res => {
  50. // let { authSetting } = res.detail;
  51. // if (authSetting['scope.werun']) {
  52. // this.getRunData();
  53. // } else {
  54. // this.$invoke('Toast', '__warning__', [
  55. // `您没有同意授权微信运动,获取步数失败`
  56. // ]);
  57. // }
  58. // },
  59. // //第五步,点击取消按钮的回调
  60. // () => {
  61. // this.$invoke('Toast', '__warning__', [
  62. // `您已拒绝微信运动授权,无法获取步数`
  63. // ]);
  64. // }
  65. // ]);
  66. }
  67. });
  68. } else {
  69. //第六步,已经授权直接进入保存逻辑
  70. console.log("授权了")
  71. getRunData()
  72. // this.getRunData();
  73. }
  74. }
  75. });
  76. }