Page 1 of 1

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

Posted: 2024年 Oct 10日 11:19
by silverlight

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 实现向用户提出授权请求


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

Posted: 2024年 Oct 10日 16:55
by tdeveloper

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


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

Posted: 2024年 Oct 10日 17:36
by Muzzzhi

需要提前申请定位权限

scope.userLocation

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


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

Posted: 2024年 Oct 11日 09:57
by silverlight
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列表,出现一样的报错


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

Posted: 2024年 Oct 18日 10:18
by Muzzzhi

正常情 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想使用这个能力,需要登录苹果开发者账号向苹果申请权限。

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

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

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

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

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

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


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

Posted: 2024年 Oct 28日 10:23
by Muzzzhi
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。