在已开启定位权限的情况下,调用getLocation方法,在真机调试的时候能获取到经纬度信息,在体验版获取不到,报错信息:{"errorCode": 40025, "errorMsg": "permission did not apply through authorize api", "innerError": "<Undefined>"}
getLocation方法在体验版失效
Re: getLocation方法在体验版失效
,最开始是这么写的,在真机调试可以拿到位置,在体验版不行,在群里问过之后,改成了这种写法
,这样写之后,无论是在真机还是体验版,都拿不到,complete回调都没触发,手机看控制台没有任何输出信息。
Re: getLocation方法在体验版失效
请问该问题复现了吗?
Re: getLocation方法在体验版失效
- Tuya MiniApp Tools 版本信息:关于中查看
- App 应用版本信息: 设置-关于中进行查看~
- @ray-js/ray, @ray-js/panel-sdk的版本(如使用ray开发)在package.json查看~
- 移动设备信息:手机型号及系统
麻烦根据这个模板提供下相关信息吧,我们这边尝试了一下,iOS(App 5.15.0) 和安卓(App 5.16.0)均能正常获取
Re: getLocation方法在体验版失效
{
"name": "通用SDM模板",
"type": "panel-app",
"ownerType": "tuya-official",
"i18n": false,
"description": "",
"miniprogramRoot": "./dist/tuya",
"dependencies": {
"BaseKit": "3.0.0",
"MiniKit": "3.0.1",
"DeviceKit": "4.4.0",
"BizKit": "4.4.4",
"MapKit": "3.0.7"
},
"baseversion": "2.13.3",
"projectname": "curtain",
"devMode": "ray",
"compileType": "miniprogram",
"remoteDebug": "mqtt"
}
Re: getLocation方法在体验版失效
lshinylee 2024年 Aug 26日 09:42
- Tuya MiniApp Tools 版本信息:关于中查看
- App 应用版本信息: 设置-关于中进行查看~
- @ray-js/ray, @ray-js/panel-sdk的版本(如使用ray开发)在package.json查看~
- 移动设备信息:手机型号及系统
麻烦根据这个模板提供下相关信息吧,我们这边尝试了一下,iOS(App 5.15.0) 和安卓(App 5.16.0)均能正常获取
- 0.7.0, Minipack: 2.1.0
- 5.16.1
- "@ray-js/panel-sdk": "1.10.0",
- 型号:Redmi k60 Ultra,系统:HyperOS
Re: getLocation方法在体验版失效
OK,我们会尝试根据你提供的环境信息复现一下,你这边解决问题也可以一起并行看看,如:
- 尝试找一个 iOS 或其他安卓手机试试是否正常。
- 确保在 getLocation 之前正常授权了 scope.userLocation 低精度定位权限或 scope.userPreciseLocation 高精度定位权限,具体文档见 https://developer.tuya.com/cn/miniapp/d ... #authorize。
Re: getLocation方法在体验版失效
lshinylee 2024年 Aug 26日 14:08OK,我们会尝试根据你提供的环境信息复现一下,你这边解决问题也可以一起并行看看,如:
- 尝试找一个 iOS 或其他安卓手机试试是否正常。
- 确保在 getLocation 之前正常授权了 scope.userLocation 低精度定位权限或 scope.userPreciseLocation 高精度定位权限,具体文档见 https://developer.tuya.com/cn/miniapp/d ... #authorize。
Code: Select all
authorizeStatus({
scope: type,
success: e => {
console.log(`authorizeStatus ${type} success`, e);
const params = {
type: 'wgs84',
altitude: false,
isHighAccuracy: false,
highAccuracyExpireTime: 60000,
complete: () => {
console.log('Get Location Complete');
},
success: res => {
console.log('location res :>> ', res);
setLocationInfo(res);
showToast({ title: '获取位置成功!', icon: 'success' });
},
fail: err => {
console.log('err :>> ', err);
showToast({ title: '获取位置失败,请检查是否开启高精度定位权限!', icon: 'none' });
},
};
getLocation(params);
},
fail: err => {
console.log(`authorizeStatus ${type} fail`, err);
// 检测权限状态关闭 申请权限
authorize({
scope: type,
success: e => {
console.log(`authorize ${type} success`, e);
},
fail: err => {
console.log(`authorize ${type} fail`, err);
},
complete: () => {
console.log(`authorize ${type} complete`);
},
});
},
complete: () => {
console.log(`authorizeStatus ${type} complete`);
},
});
根据console信息来看,权限确定是已开启的,但是在调getLocation时触发了fail