1

Chrome에서 푸시 알림 기능을 테스트하려고합니다. Google에서 제공 한 샘플 Chrome 푸시 알림 웹 앱을 여기에 복제했습니다. Web server for Chrome extension 로컬 호스트의 HTTP 서버를 사용하여 웹 앱을 호스팅 할 때 코드가 제대로 작동합니다. 모바일 장치에서 웹 응용 프로그램을 테스트하려는 경우 HTTP 서버이고 localhost가 아니기 때문에 서비스 확장자가 HTTPS에서만 작동하기 때문에 Chrome 확장에 웹 서버를 사용할 수 없었습니다. 그래서 저는 자체 서명 된 인증서를 사용하여 파이썬 기반의 HTTPS 서버를 만들고 거기에 웹 응용 프로그램을 호스팅했습니다. 아래와 같은 서비스 노동자를 등록하는 동안AbortError : ServiceWorker를 등록하지 못했습니다. ServiceWorker를 시작할 수 없습니다.

지금은 AbortError: Failed to register a ServiceWorker: ServiceWorker cannot be started 무엇입니까 :

navigator.serviceWorker.register('./service-worker.js') 

서비스 - worker.js HTML 파일뿐만 아니라 내가 어디에서 JS 파일과 같은 디렉토리에 이 메소드를 호출합니다.

서비스 직원에 대한 문서는 많지 않습니다. 또한 오류는 너무 모호하여 아무것도 파악하지 못합니다. 이 오류의 근본 원인을 알아내는 데 도움을주십시오.

+0

'.catch (function (err) { console.log (err); })'to''register ' 요구? _ "service-worker.js는 html 파일과 같은 디렉토리에 있습니다"_ 왜 service-worker.js의 경로 시작 부분에'. /'를 사용합니까? 'service-worker.js'의 전체 경로가 사용되면 오류가 발생합니까? – guest271314

답변

0

해결책을 찾았습니다. 서비스 근로자는 보안 HTTPS 네트워크에서만 작동합니다. 내가 만든 Python HTTPS Server는 자체 서명 된 인증서를 사용하여 서명되었으므로 안전하지 않습니다. ngrok를 사용하여 localhost에 안전한 https 터널을 만들었고 작동했습니다.