HarmonyOS 鸿蒙Next用checkAccessToken方法检查是否有授权 回调函数返回的内容没有TokenID

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next用checkAccessToken方法检查是否有授权 回调函数返回的内容没有TokenID

用checkAccessToken方法检查是否有授权,其中TokenID , 不知如何获取。文档里说普通应用可以通过bundleManager.getBundleInfoForSelf获取,但是这个方法的回调函数返回的内容没有TokenID

问题场景描述: 应用想获取oaid,但是为了避免弹窗,希望先判断是否有权限,若有则取,若无则不取,于是找到了 checkAccessToken(https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-abilityaccessctrl-V5#checkaccesstoken9

这个方法,文档里说的入参TokenID,普通应用可以通过bundleManager.getBundleInfoForSelf获取,但是这个方法的回调函数返回的内容没有TokenID


更多关于HarmonyOS 鸿蒙Next用checkAccessToken方法检查是否有授权 回调函数返回的内容没有TokenID的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

accessTokenId可通过BundleInfo下的appInfo获取,bundleFlags选择GET_BUNDLE_INFO_WITH_APPLICATION,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bundlemanager-V5#bundlemanagergetbundleinfoforself

let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;
try {
  bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
    console.info('testTag123:' + data.appInfo.accessTokenId);
    hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
}

更多关于HarmonyOS 鸿蒙Next用checkAccessToken方法检查是否有授权 回调函数返回的内容没有TokenID的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,使用checkAccessToken方法检查授权时,如果回调函数返回的内容中没有TokenID,这通常意味着授权检查未通过或者返回的数据结构不包含预期的TokenID字段。可能的原因包括但不限于:

  1. 授权失败:用户未授予所需权限,或者授权流程中存在错误。
  2. 数据格式问题:返回的数据格式不符合预期,可能是API版本更新导致的结构变化。
  3. 网络或服务器问题:在请求授权检查过程中,可能存在网络延迟或服务器响应异常。

为了解决这个问题,你可以:

  • 确认授权状态:确保用户已经正确授权,并且授权的范围符合你的应用需求。
  • 检查API文档:查阅最新的HarmonyOS开发者文档,确认checkAccessToken方法的返回数据结构,以及是否有关于TokenID字段的变更。
  • 错误处理:在回调函数中增加错误处理逻辑,根据返回的错误码或错误信息进一步诊断问题。

如果上述步骤无法解决问题,可能是系统层面的bug或特殊情况。此时,你可以联系HarmonyOS的官方支持渠道进行进一步咨询。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部