详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
[步骤]
[期望]
输出授权成功:'授权成功 --- userLocation'
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
uni-app运行环境说明
[运行端是] 微信小程序
[iOS运行系统] 13.3.1
[手机型号] iPhone 8
[微信版本] 7.0.12
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
代码片段:
1、manifest.json 里勾选了位置接口和相关描述
2、在pages.json配置:
"requiredBackgroundModes": ["location"],
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
},
"scope.userLocationBackground": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
3、执行的代码:
wx.getSetting({
success: (res) => {
if (!res.authSetting['scope.userLocationBackground']) {
wx.authorize({
scope: ' scope.userLocationBackground',
success: (res) => {
//scope.userLocationBackground 不会弹窗提醒用户,引导用户手动授权
wx.showModal({
title:'提示',
content: '授权失败,点击右上角设置位置为使用时和离开后!',
success: (result) => {
if(result.confirm){
wx.openSetting({
complete:(res)=>{
res.authSetting = {
"scope.userLocationBackground": true,
}
wx.startLocationUpdateBackground({
success: (res) => {
console.log('后台授权-success-res:', res);
},
fail: (res) => {
console.log('后台授权====fail失败--res:', res)
}
});
}
})
}
}
})
},
fail: (res) => {
console.log('授权失败 --- userLocation', res)
},
})
} else {
console.log('已授权后台位置')
wx.onLocationChange((res) => {
console.log('onLocationChange=====res====', res)
})
}
},
//getSetting失败
fail: (res) => {
console.log('getSetting--失败', res)
},
})
联系方式
[QQ] 756099379
[微信] 18802683293
5 个回复
zhangdaren - 小程序转uniapp工具:https://ext.dcloud.net.cn/plugin?id=2656
uniapp没这个api,,,
arroning - 我是不一样的烟火
我们也遇到这样的问题,为什么uniapp框架 不支持微信小程序的函数 wx.startLocationUpdateBackground。请官方抓紧修复。
DCloud_heavensoft
后台定位,是微信特有的。他建立在微信的后台进程,手机rom厂商不敢杀的基础上。
普通开发者做的app,在后台时,手机rom厂商为了节电,都会杀掉,无法持续请求定位。
lz_0618 - 老程序员
wx.startLocationUpdateBackground在uni-app下可以用的,只是需要小程序设置“位置信息”为“使用小程序期间和离开小程序后”!在原生环境下,似乎我没有设置就没有问题(当时没有注意),但在微信官方文档中明确需要这么设置的!
是张张啊 - 继续加油呀
请问现在解决了吗?搜索官方还是没有startLocationUpdateBackground这个函数