微信小程序拒绝授权引导设置案例

简单也得记下——ubbcou

文章来源:微信小程序拒绝授权引导设置案例

完整 Example 源码:点击进入

使用的微信开放接口

wx.getSetting: 获取用户的当前设置( res.authSetting[scope] 获取授权信息 )。
wx.openSetting: 调起客户端小程序设置界面,返回用户设置的操作结果。
wx.authorize: 提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。但在缓存生效期间只会弹窗一次。
wx.showModal: 检测到未授权时弹窗提示用户。
wx.chooseAddress && wx.chooseInvoiceTitle: 调起响应的用户授权。
使用 ``

app.js

App({

  /**
   * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
   */
  onLaunch: function () {
    console.log("[ onLaunch");
    this.userLogin();
    console.log("]");
  },

  /**
   * 当小程序启动,或从后台进入前台显示,会触发 onShow
   */
  onShow: function (options) {
    console.log("[ onShow");
    console.log(options);
    console.log("]");
  },

  /**
   * 当小程序从前台进入后台,会触发 onHide
   */
  onHide: function () {
    console.log("[ onHide");
    console.log("]");
  },

  /**
   * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
   */
  onError: function (msg) {
    console.log("[ onError");
    console.log('onError');
    console.log('msg');
    console.log("]");
  },

  /**
   * 全局变量
   */
  globalData: {},

  /**
   * 登陆
   */
  userLogin() {
  },

  /**
   * 授权
   * scope.userInfo wx.getUserInfo  用户信息
      scope.userLocation    wx.getLocation, wx.chooseLocation   地理位置
      scope.address wx.chooseAddress    通讯地址
      scope.invoiceTitle    wx.chooseInvoiceTitle   发票抬头
      scope.werun   wx.getWeRunData 微信运动步数
      scope.record  wx.startRecord  录音功能
      scope.writePhotosAlbum    wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum    保存到相册
      scope.camera      摄像头
   */
  checkAuthorize(scope) {
    wx.getSetting({
      success: (res) => {
        console.log(res.authSetting[scope])
        if (!res.authSetting[scope]) {
          wx.showModal({
            title: '用户未授权',
            content: '拒绝授权将不能体验小程序完整功能,点击确定开启授权',
            success: (res) => {
              console.log(res)
              if (res.confirm) {
                wx.openSetting({})
              }
            }
          })
        }
      }
    })
  }
})

index.wxml




index.js

const app = getApp();
Page({
  testAddress() {
    wx.chooseAddress({
      success: (res) => {
        console.log(res)
      },
      fail: (error) => {
        console.log(error);
        app.checkAuthorize('scope.address')
      }
    })
  },

  TestWeRunData() {
    wx.chooseInvoiceTitle({
      success: (res) => {
        console.log(res)
      },
      fail: (error) => {
        console.log(error);
        app.checkAuthorize('scope.address')
      }
    })
  }
})

转载请声明
作者:ubbcou
邮箱:[email protected]

你可能感兴趣的:(微信小程序拒绝授权引导设置案例)