Has*_*Ajk 6 javascript firebase firebase-cloud-messaging
我正在尝试将 FCM 与 angularjs 一起使用,因此在初始化 firebase 后,我编写了以下代码:
messaging = firebase.messaging();
$window.navigator.serviceWorker.register($rootScope.app.base_url + '/app/lib/firebaseCustomWorker.js')
.then(function(registration) {
messaging.useServiceWorker(registration);
messaging.requestPermission().then(function(){
messaging.getToken()
.then(function(currentToken) {
console.log(currentToken);
})
.catch(function(err) {
console.log('An error occurred while retrieving token. ', err);
});
}).catch(function(err){console.log(err)});
Run Code Online (Sandbox Code Playgroud)
问题是最后一行有时会捕获出现在控制台中的错误,其中包含以下代码"messaging/use-sw-before-get-token"和消息:
FirebaseError: Messaging: 您必须在调用 getToken() 之前调用 useServiceWorker() 以确保使用您的 Service Worker。(消息/使用-sw-before-get-token)。
正如你可以在上面的代码中看到,我只能打电话getToken()叫后useServiceWorker()和后requestPermission()
我firebase-messaging.js在第 35 行挖掘了原始文件,但不幸的是没有得到任何关于为什么会发生这种情况的线索
我知道这可能很疯狂并且会适得其反,但它确实有效。
.
.
.
if('undefined' !== typeof messaging.b )
delete(messaging.b);
messaging.useServiceWorker(registration);
.
.
.
Run Code Online (Sandbox Code Playgroud)
受到阅读 firebase-messaging.js 的启发
| 归档时间: |
|
| 查看次数: |
3777 次 |
| 最近记录: |