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 回复
在HarmonyOS鸿蒙Next中,如果浏览器不支持 navigator.pushManager
相关操作,并报错为空对象,可能是由于以下原因:
- 兼容性问题:鸿蒙Next的浏览器内核可能尚未完全支持
pushManager
API。 - API未实现:
pushManager
是Web Push API的一部分,可能在鸿蒙Next中尚未实现或完全支持。 - 权限问题:检查是否有足够的权限来使用推送通知功能。
解决方案:
- 使用兼容性检查,确认
navigator.pushManager
是否存在。 - 考虑使用其他推送通知方案,如第三方服务(Firebase、OneSignal)。
- 关注鸿蒙OS的更新,等待官方对相关API的支持。
建议联系鸿蒙OS官方技术支持,获取更详细的解决方案。