0

이렇게 코드를 작성하면 서비스 직원에게 등록 할 때 알림을받을 수있는 권한이 생깁니다. 홈 화면에 추가 된 응용 프로그램을 시작한 후 알림을 허용하고 싶어서 서비스 작업자와 등록 할 때 알림 권한이 표시되지 않도록 할 수 있습니까?푸시 알림을받지 않고 서비스 작업자를 설치할 수 있습니까?

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'); 
} 

답변

1

이 체크는 Handle Permission Denied 문서에서 확인할 수 있습니다. 사용자가 아직 가입하지 않은 상태에서 푸시 버튼을 비활성화하는 방법에 대한 샘플 코드를 참조 할 수 있습니다.

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; 
} 
+0

감사합니다. 신고의 허가를 확인한 후 등록 할 수 있도록 노력하겠습니다! – aiosl

+0

"Handle Permission Denied"샘플을보고 해결책 힌트를 얻었습니다. 표시된 코드 이외의 곳에 "subscribe()"가 수행되는 곳이 있습니다. 통지 권한이 요청되었습니다. 도움 주셔서 감사합니다. – aiosl