getWifiList 报错没有权限无法正常获取数据

小程序开发相关产品技术讨论,包括面板、智能小程序、React Native、Ray跨端框架、Panel SDK、微信小程序、小程序开发工具(IDE)及其他开发技术相关等话题


Post Reply
silverlight
Posts: 114

Tuya MiniApp Tools 版本信息:
Node: v18.20.1
Tools: 0.7.1
Ray: 1.5.20

@ray-js/ray, @ray-js/panel-sdk的版本
"@ray-js/panel-sdk": "1.10.0",
"@ray-js/ray": "1.5.29",

相关代码:

Code: Select all

  const fetchWifiList = () => {
    getWifiList({
      success: (res) => {
        console.log('获取到的 Wi-Fi 列表:', res);
      },
      fail: (err) => {
        console.error('获取 Wi-Fi 列表失败:', err);
      },
      complete: () => {
        console.log('获取 Wi-Fi 列表完成');
      },
    });
  };
  

日志信息:

Code: Select all

获取 Wi-Fi 列表失败: {
"errorCode": 9004, 
"errorMsg": "app no permission", 
"innerError": "<Undefined>"}

预期结果:获取到手机附近的wifi列表

实际结果:获取不到,提示没有权限
问题一:我是要获取什么权限,才能查看wifi列表?
问题二:我已知获取权限是通过authorize 实现向用户提出授权请求


Tags:
tdeveloper
Site Admin
Posts: 22

Re: getWifiList 报错没有权限无法正常获取数据

问题已收到, 我们会尽快排查解决

:arrow: 你对灵魂的渴望,是你命运的先知
User avatar
Muzzzhi
Posts: 86

Re: getWifiList 报错没有权限无法正常获取数据

需要提前申请定位权限

scope.userLocation

ty. authorize({
scope: "scope.userLocation"
})

:geek: :ugeek: :mrgreen: :roll: :lol: :idea: :arrow: LGTM

silverlight
Posts: 114

Re: getWifiList 报错没有权限无法正常获取数据

Muzzzhi 2024年 Oct 10日 17:36

需要提前申请定位权限

scope.userLocation

ty. authorize({
scope: "scope.userLocation"
})

Code: Select all

 const fetchAuthorize = () => {
    authorize({
      scope: 'scope.userLocation',
      complete: () => {
        console.log('权限请求完成');
      },
      success: () => {
        console.log('权限请求成功');

  },
  fail: (error) => {
    console.log('权限请求失败', error);
  }
});
  };

  const fetchWifiList = () => {
    getWifiList({
      success: (res) => {
        console.log('获取到的 Wi-Fi 列表:', res);
      },
      fail: (err) => {
        console.error('获取 Wi-Fi 列表失败:', err);
      },
      complete: () => {
        console.log('获取 Wi-Fi 列表完成');
      },
    });
  };
  const fetchAuthorizeStatus = () =>{
    authorizeStatus({
      scope: 'scope.userLocation',
      complete: () => {
        console.log('权限状态查询完成');
      },
      success: () => {
        console.log('权限已授权');
      },
      fail: (error) => {
        console.log('权限未授权', error);
      }
    });
  }

我获取了定位权限,也查询了该权限,显示授权已成功,但还是获取不到wifi列表,出现一样的报错

User avatar
Muzzzhi
Posts: 86

Re: getWifiList 报错没有权限无法正常获取数据

正常情 wifiList 数据会在 onGetWifiList 注册的回调中返回。 Android 调用前需要 用户授权 scope.userLocation。

Code: Select all

  useEffect(() => {
    onGetWifiList((res) => {
      console.log('获取到的Wi-Fi列表:', res)
    })
  }, [])

  const handleGetWifiList = () => {
    authorize({
      scope: 'scope.userLocation',
      success: () => {
        console.log('授权成功')
        getWifiList({
          success: () => console.log('获取WiFi列表成功'),
          fail: console.error,
        })
      },
      fail: console.error,
    })
  }

已经联系iOS开发,说明一下:

  1. 由于苹果管控,这个能力目前智能生活、涂鸦智能 iOS 均不可用,后续文档会标注清楚。
  2. 若OEM App想使用这个能力,需要登录苹果开发者账号向苹果申请权限。

:geek: :ugeek: :mrgreen: :roll: :lol: :idea: :arrow: LGTM

silverlight
Posts: 114

Re: getWifiList 报错没有权限无法正常获取数据

Muzzzhi 2024年 Oct 18日 10:18

正常情 wifiList 数据会在 onGetWifiList 注册的回调中返回。 Android 调用前需要 用户授权 scope.userLocation。

已经联系iOS开发,说明一下:

  1. 由于苹果管控,这个能力目前智能生活、涂鸦智能 iOS 均不可用,后续文档会标注清楚。
  2. 若OEM App想使用这个能力,需要登录苹果开发者账号向苹果申请权限。

好的,那么oem app申请获得该权限后,ios的面板小程序就可以获取到数据吗?

User avatar
Muzzzhi
Posts: 86

Re: getWifiList 报错没有权限无法正常获取数据

silverlight 2024年 Oct 18日 15:44
Muzzzhi 2024年 Oct 18日 10:18

正常情 wifiList 数据会在 onGetWifiList 注册的回调中返回。 Android 调用前需要 用户授权 scope.userLocation。

已经联系iOS开发,说明一下:

  1. 由于苹果管控,这个能力目前智能生活、涂鸦智能 iOS 均不可用,后续文档会标注清楚。
  2. 若OEM App想使用这个能力,需要登录苹果开发者账号向苹果申请权限。

好的,那么oem app申请获得该权限后,ios的面板小程序就可以获取到数据吗?

向苹果申请成功权限之后,要走APP定制流程 https://developer.tuya.com/cn/docs/arch ... 9rti7sesm5 ,更新证书 和entitlement。

:geek: :ugeek: :mrgreen: :roll: :lol: :idea: :arrow: LGTM

Post Reply