微信小程序如何重新授权?

相信各位在小程序的开发中, 常常会碰到一个很难解决的坑,那就是用户“授权”问题。当“授权”对话框弹出,却被用户无情拒绝,这就是比较惨了。因为作为小程序的商家用户,想拿到的还是用户的信息,而这些信息必须要经过用户的“授权”同意后才能拿到。那么作为开发商的我们,如何偷偷引导用户“放我们一马”,“授权与我们”就成了一道关键的门槛。

毕竟,只有能够被小用户认可的小程序才会更好的被大众所接受,而能帮助商户实现这一操作才能让自己的小程序服务更加到位,将来才会有更多的商户和我们合作。废话不多说,下面来分享一下我的秘笈!

我的这个demo是个人信息+地理位置的双重授权。

要么授权通过,进入首页

要么拒绝授权,停留在有授权入口的页面

需要设置一个标志值:authorizeInfo,根据此值得真假来决定是渲染首页还是渲染显示重新授权的页面。

在页面显示的时候,获取用户信息与地理位置

// userInfo

wx.getUserInfo({

success:res=>{

this.setData({userInfo : true})

},

fail:res=>{

this.setData({ userInfo: false })

}

})

// locationInfo

wx.getLocation({

success: res => {

this.setData({ locationInfo: true })

},

fail: res => {

this.setData({ locationInfo: false })

}

})

authorizeInfo的设置就要依靠刚刚获取的这两个值了,设置定时器不断执行authorizeInfo,直到userInfo和locationInfo两个值都为true就把定时器清除(设置定时器是因为刚开始获取userInfo和locationInfo可能会失败),当两者都为真时表示所有授权均已通过,跳转至首页。否则,将会一直停留在授权页。

//all authorize

let timer = setInterval(() => {

this.authorizeInfo();

if (this.data.userInfo && this.data.locationInfo){

clearInterval(timer)

}

}, 100)

//authorizeInfo

authorizeInfo: function(){

if (this.data.userInfo && this.data.locationInfo) {

this.setData({ authorizeInfo: true })

//reLaunch

wx.reLaunch({

url: '/pages/index/index'

})

}

else {

this.setData({ authorizeInfo: false })

}

}

而重新授权这个操作需要调用wx.openSetting这个接口,通过返回值判断,用户再次调用授权操作后是否全部授权,是的话跳转至首页,否则停留在授权页。

这种引导用户重新“授权”的操作是一项救赎式的姿势。今天的关于解决用户“授权”问题的秘笈就为大家分享到这了,各位拿好不谢。怎么说,作为行业老大哥也得为各位兄弟父老乡亲们透露一下开山道的办法!毕竟是对广大商户有好处的操作,解决这个问题,我们做小程序才更有价值!赶快试试这个方法吧!

上一篇 问你个问题,知道企业为什么要开通小程序吗? 下一篇 免费订餐小程序,能为商家带来什么?
论坛资讯同步说明,本文同步自论坛:bbs.miaozhizuo.com,如您在论坛注册成为会员用户并且发帖,则默认论坛文章同步协议,协议内容请移步论坛查看!

          在线客服

            点击这里给我发消息

          VIP咨询
         点击这里给我发消息

          咨询热线

   17080039991

      (免费拨打)

          代理招商

   178-9531-8531

[关闭]
随手APP微信

官方微信自助客服

[关闭]