Dew*_*159 30 javascript firebase service-worker firebase-cloud-messaging
我正在尝试使用Firebase消息传递(Web).Firebase默认搜索保存服务工作者的文件"firebase-messaging-sw.js".
服务工作者脚本应该位于应用程序的绝对路径上!例如:http://localhost/firebase-messaging-sw.js
如何更改此默认位置?!搜索官方文档我发现这个方法:useServiceWorker接受服务工作者注册,但尝试使用它我得到一个错误,该方法甚至不存在!
那么,如何更改服务工作者的位置以进行firebase消息传递?
Mat*_*unt 50
正如迈克尔所说,使用的方法是useServiceWorker(<registration>).
https://firebase.google.com/docs/reference/js/firebase.messaging.Messaging#useServiceWorker
Messaging类是您调用时返回的内容firebase.message().
所以样本将是:
navigator.serviceWorker.register('./example/sw.js')
.then((registration) => {
messaging.useServiceWorker(registration);
// Request permission and get token.....
});
Run Code Online (Sandbox Code Playgroud)
我刚刚在Github上的演示应用程序上试了这个,没有问题:https://github.com/firebase/quickstart-js/tree/master/messaging
您应该可以执行firebase.messaging().useServiceWorker(registration)并传递现有的服务工作者注册.请注意,您应该在拨打例如getToken()或之前尽早执行此操作onMessage().
我知道这是一个老问题,但useServiceWorker现在已弃用,很高兴提到您可以将服务工作者直接传递给getToken. 当前文档
const registration = await navigator.serviceWorker.ready;
const messaging = firebase.messaging();
const token = await messaging.getToken({
serviceWorkerRegistration: registration,
vapidKey: "",
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20703 次 |
| 最近记录: |