Page 1 of 2

getLocation方法在体验版失效

Posted: 2024年 Aug 23日 08:59
by jie_73

在已开启定位权限的情况下,调用getLocation方法,在真机调试的时候能获取到经纬度信息,在体验版获取不到,报错信息:{"errorCode": 40025, "errorMsg": "permission did not apply through authorize api", "innerError": "<Undefined>"}


Re: getLocation方法在体验版失效

Posted: 2024年 Aug 23日 09:06
by jie_73
最开始的写法.png

,最开始是这么写的,在真机调试可以拿到位置,在体验版不行,在群里问过之后,改成了这种写法

触发方法.png
权限验证.png

,这样写之后,无论是在真机还是体验版,都拿不到,complete回调都没触发,手机看控制台没有任何输出信息。


Re: getLocation方法在体验版失效

Posted: 2024年 Aug 23日 09:23
by lshinylee

你好,你的反馈已收到,我们将尽快答复你。


Re: getLocation方法在体验版失效

Posted: 2024年 Aug 26日 09:23
by jie_73
lshinylee 2024年 Aug 23日 09:23

你好,你的反馈已收到,我们将尽快答复你。

请问该问题复现了吗?


Re: getLocation方法在体验版失效

Posted: 2024年 Aug 26日 09:29
by lshinylee

你项目中的 project.tuya.json 里的 dependencies 是怎么配置的呢?


Re: getLocation方法在体验版失效

Posted: 2024年 Aug 26日 09:42
by lshinylee
  • 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方法在体验版失效

Posted: 2024年 Aug 26日 09:45
by jie_73
lshinylee 2024年 Aug 26日 09:29

你项目中的 project.tuya.json 里的 dependencies 是怎么配置的呢?

{
"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方法在体验版失效

Posted: 2024年 Aug 26日 09:53
by jie_73
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
    手机信息.jpg

Re: getLocation方法在体验版失效

Posted: 2024年 Aug 26日 14:08
by lshinylee

OK,我们会尝试根据你提供的环境信息复现一下,你这边解决问题也可以一起并行看看,如:

  • 尝试找一个 iOS 或其他安卓手机试试是否正常。
  • 确保在 getLocation 之前正常授权了 scope.userLocation 低精度定位权限或 scope.userPreciseLocation 高精度定位权限,具体文档见 https://developer.tuya.com/cn/miniapp/d ... #authorize

Re: getLocation方法在体验版失效

Posted: 2024年 Aug 26日 15:27
by jie_73
lshinylee 2024年 Aug 26日 14:08

OK,我们会尝试根据你提供的环境信息复现一下,你这边解决问题也可以一起并行看看,如:

  • 尝试找一个 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`);
      },
    });
log.jpg

根据console信息来看,权限确定是已开启的,但是在调getLocation时触发了fail