以 Promise 风格调用wx.showModal时,无法调用wx.openSetting(),如下所示:
wx.showModal({
cancelColor: 'cancelColor',
title: '位置授权',
content: '小程序获取位置后,可提供更好的服务',
confirmText: '去授权',
confirmColor: 'green',
}).then(res => {
if (res.confirm) {
console.log('用户点击了“去设置”', res)
wx.openSetting()
} else if (res.cancel) {
console.log('用户点击了“取消”', err)
}
})
但是如果回调函数的方式调用wx.showModal时,就可以调用wx.openSetting(),如下所示:
wx.showModal({
cancelColor: 'cancelColor',
title: '位置授权',
content: '小程序获取位置后,可提供更好的服务',
confirmText: '去授权',
confirmColor: 'green',
success(res) {
if (res.confirm) {
wx.openSetting()
} else if (res.cancel) {
console.log('用户点击了“取消”', err)
}
}
})
调整后“打开小程序设置页”将支持以下两种实现方式:
button
组件来使用此功能,示例代码如下:<button open-type="openSetting" bindopensetting="callback">打开设置页</button>
wx.openSetting
接口的调用,示例代码如下:<button bindtap="openSetting">打开设置页</button> openSetting() { wx.openSetting()}
---直接在js里面调用wx.openSetting() 开发者工具和部分安卓可以 ios不起作用
建议自己封装个promise,就没问题了
我今天也遇到了同样的问题,不能以promise风格调用
基础库版本对吗