HarmonyOS鸿蒙Next浏览器不支持 navigator 下的 pushManager 相关操作,而且报错为一个空对象

HarmonyOS鸿蒙Next浏览器不支持 navigator 下的 pushManager 相关操作,而且报错为一个空对象

try {
    const registration = await navigator.serviceWorker.ready;
    subscription = await registration.pushManager.getSubscription() || 
        await registration.pushManager.subscribe({
            userVisibleOnly: true,
            applicationServerKey: xxxxxxxxxxx,
        });
} catch (error) {
    const blob = new Blob([JSON.stringify(error)], { type: 'text/plain' });
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'error.txt';
    a.click();
    URL.revokeObjectURL(url);
}

下载下来的 error.txt 内容为 {}

此问题仅存在于鸿蒙系统上的浏览器:自带的/商店下的Edge

已经给了网页通知权限了

ios/Android(Xperia) 上无此问题


更多关于HarmonyOS鸿蒙Next浏览器不支持 navigator 下的 pushManager 相关操作,而且报错为一个空对象的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

您好,您的问题需要进一步分析,请您通过在线提单进一步解决:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的反馈和支持。

更多关于HarmonyOS鸿蒙Next浏览器不支持 navigator 下的 pushManager 相关操作,而且报错为一个空对象的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,如果浏览器不支持 navigator.pushManager 相关操作,并报错为空对象,可能是由于以下原因:

  1. 兼容性问题:鸿蒙Next的浏览器内核可能尚未完全支持 pushManager API。
  2. API未实现pushManager 是Web Push API的一部分,可能在鸿蒙Next中尚未实现或完全支持。
  3. 权限问题:检查是否有足够的权限来使用推送通知功能。

解决方案

  • 使用兼容性检查,确认 navigator.pushManager 是否存在。
  • 考虑使用其他推送通知方案,如第三方服务(Firebase、OneSignal)。
  • 关注鸿蒙OS的更新,等待官方对相关API的支持。

建议联系鸿蒙OS官方技术支持,获取更详细的解决方案。

回到顶部