Push notification 我可以在没有推送通知许可的情况下安装service worker吗?
当我这样编写代码时,我在向服务人员注册时获得了通知权限。 我想在启动添加到主屏幕的应用程序后允许通知,因此我想在向服务人员注册时阻止显示通知权限,是否可能Push notification 我可以在没有推送通知许可的情况下安装service worker吗?,push-notification,permissions,service-worker,progressive-web-apps,Push Notification,Permissions,Service Worker,Progressive Web Apps,当我这样编写代码时,我在向服务人员注册时获得了通知权限。 我想在启动添加到主屏幕的应用程序后允许通知,因此我想在向服务人员注册时阻止显示通知权限,是否可能 if ('serviceWorker' in navigator && 'PushManager' in window){ navigator.serviceWorker.register(pathServiceWorker) .then(function(swReg){ swR
if ('serviceWorker' in navigator && 'PushManager' in window){
navigator.serviceWorker.register(pathServiceWorker)
.then(function(swReg){
swReg.pushManager.subscribe({userVisibleOnly: true})
.then(function(sub) {
console.log('endpoint:', sub.endpoint);
}).catch(function(error){
console.error('subscribeError',error);
});
}).catch(function(error){
console.error('ServiceWorkerError',error);
});
} else {
console.warn('Pushmessagingisnotsupported');
}
您可以查看此文档。您可以参考示例代码,了解如何在用户尚未订阅时禁用按钮
function updateBtn() {
if (Notification.permission === 'denied') {
pushButton.textContent = 'Push Messaging Blocked.';
pushButton.disabled = true;
updateSubscriptionOnServer(null);
return;
}
if (isSubscribed) {
pushButton.textContent = 'Disable Push Messaging';
} else {
pushButton.textContent = 'Enable Push Messaging';
}
pushButton.disabled = false;
}
谢谢你的回答!在确认通知许可后,我将尝试注册!我看到了一个“handlepermissiondenied”示例,并得到了一个解决方案提示。有些地方的“subscribe()”是在提交的代码以外的地方完成的,请求通知许可。谢谢你的帮助@aiosl-你有解决这个问题的办法吗?我不想向用户显示任何权限提示,但想发送通知。