微信授权相关注意点(非所有哦)

1.授权订阅消息

	wx.requestSubscribeMessage({
      tmplIds: _this.data.mobanId, //接口获取模板id 
      success(res) {
        wx.reLaunch({ url: '../../pages/index/index', })
      },
      fail: function (res) {
        wx.openSetting({
          success: (data) => {
            _this.setData({
              returnBack: true //开启配置页时返回指定页面判断                     
            })
          },
        })
      }
    })

ps:
①授权前面不能嵌套方法或者多余代码,不然会调取失败,比如在拿到模板id 之后再调取授权等(亲试无效)
②无需判断是否已经授权

2.微信手机号授权(一般用于微信登录)

<button class='btnPhone' 
	bindgetphonenumber="getPhoneNumber" 
	open-type="getPhoneNumber"> 
	微信快捷登录
</button>

getPhoneNumber(e) {
   let _this = this
   if (e.detail.errMsg == 'getPhoneNumber:ok') {
     let param = {
       iv: e.detail.iv,
       encryptData: e.detail.encryptedData
     }
     // 微信登录
     wx.login({
       success: (res) => {
         param.code = res.code
         // 业务需求拿到手机号再进行登录所以要调解密接口
         api.requestLoading('url', param, 'post', function (res) {
           if (res.code == 1) {
             //调取登录接口 
           } else {
             // 解密失败
           }
         })
       }
     })
   }
 }
 ps:其他授权方式大都类似,具体还是根据业务需求

3.保存图片授权

ps: 保存图片较为特殊, 需要两个button触发
原因:当拒绝授权时再次授权保存,一直是授权失败,走fail
解决:设置变量,拒绝授权后显示另一个按钮(因为保存图片授权只有用户点击触发才能再次调起,亲测),opensetting去设置页码授权

saveImg (e) {
  var _this = this;
  //先判断是否授权 
  wx.getSetting({
    success: function (res) {
      if (!res.authSetting['scope.writePhotosAlbum']) {
        wx.authorize({
          scope: 'scope.writePhotosAlbum',
          success: function (res) {
          	//保存图片接口 
            _this.clickSaveImg()
          },
          fail: function (res) {
          	// 如果没有授权 
            wx.showModal({
              title: '提示', 
              content: '请点击下方授权保存', 
              showCancel: false
            })
            _this.setData({
              // 显示button 按钮,引导授权 
              allow: false
            })
          }
        })
      } else {
        //已经授权直接保存 
        _this.clickSaveImg() 
      }
    }
  })
}
// 引导授权 
handleSetting(e) {
  let that = this;
  //对用户的设置进行判断,如果没有授权,即使用户返回到保存页面,
  //显示的也是“去授权”按钮;同意授权之后才显示保存按钮 
  if (!e.detail.authSetting['scope.writePhotosAlbum']) {
    wx.showModal({ 
    title: '警告', 
    content: '若不打开授权,则无法将图片保存在相册中!', 
    showCancel: false })
    that.setData({ allow: false })
  } else {
    wx.showModal({
      title: '提示',
      content: '您已授权,赶紧将图片保存在相册中吧!',
      showCancel: false
    })
    that.setData({ allow: true })
  }
}

clickSaveImg() {
  let _this = this
  var imgUrl = _this.data.imgSrc
  wx.showLoading({ title: '图片保存中' })
  wx.downloadFile({
    //下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,
    //返回文件的本地临时路径 
    url: imgUrl, success: function (res) {
      // 下载成功后再保存到本地 
      wx.saveImageToPhotosAlbum({
        filePath: res.tempFilePath,
        //返回的临时文件路径,下载后的文件会存储到一个临时文件 
        success: function (res) {
          wx.hideLoading()
          setTimeout(function () { 
	          wx.showToast({ 
	          	title: '成功保存到相册', 
	          	icon: 'success' 
	          }) 
	      }, 500)
        },
        fail: function (res) { }
      })
    }
  })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值