简单也得记下——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
<!--pages/index.wxml-->
<button bindtap="testAddress">测试地址授权</button>
<button bindtap="TestWeRunData">测试发票抬头授权</button>
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
邮箱:ubbcou@outlook.com