Android 一个服务工作者进程停止另一个服务工作者进程,反之亦然

Android 一个服务工作者进程停止另一个服务工作者进程,反之亦然,android,push-notification,polymer,service-worker,onesignal,Android,Push Notification,Polymer,Service Worker,Onesignal,我们正在使用白金服务工人(谷歌聚合物元素)为我们的应用程序提供离线和缓存功能。当我们第一次打开应用程序时,polymer element的服务人员开始运行。该应用程序运行良好 但一旦我们订阅了一个推送通知信号(第三方),他们的服务工作者就会运行,我们的白金服务工作者就会停止运行(取消注册)。当我们再次重新加载应用程序时,同样的情况也会发生:单信号服务工作者停止运行(取消注册),白金服务工作者开始运行 我们希望两个服务人员都能独立工作,而不会相互影响。请给我一些建议。我们的服务人员OneSigna

我们正在使用白金服务工人(谷歌聚合物元素)为我们的应用程序提供离线和缓存功能。当我们第一次打开应用程序时,polymer element的服务人员开始运行。该应用程序运行良好

但一旦我们订阅了一个推送通知信号(第三方),他们的服务工作者就会运行,我们的白金服务工作者就会停止运行(取消注册)。当我们再次重新加载应用程序时,同样的情况也会发生:单信号服务工作者停止运行(取消注册),白金服务工作者开始运行


我们希望两个服务人员都能独立工作,而不会相互影响。请给我一些建议。

我们的服务人员
OneSignalSDKWorker.js
OneSignalSDKUpdaterWorker.js
覆盖在最顶层(站点根)服务人员范围内注册的其他服务人员;是否可以将您的其他服务人员导入我们的服务人员

以下是如何做到这一点:

目前,
OneSignalSDKWorker.js
OneSignalSDKUpdaterWorker.js
的内容都包含以下内容:

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDK.js');
请修改
OneSignalSDKWorker.js
OneSignalSDKUpdaterWorker.js
的内容,以导入其他服务工作者文件,如下所示:

importScripts('https://example.com/my-other-service-worker.js');
importScripts('https://cdn.onesignal.com/sdks/OneSignalSDK.js');
我们建议使用上述方法,而不是将我们的服务工作者导入到另一个文件中,因为我们的web SDK覆盖了在根作用域上注册的其他工作者,并将其替换为我们的工作者

请注意,所有这些仅适用于尝试将服务工作人员注册到根作用域的情况,如。如果您试图仅在特定子目录下注册一个服务人员,如,则不应替换您的服务人员


更多关于服务工作者的信息。

如果我想使用到other-service-worker.js的相对路径导入,它仍然不起作用将其他脱机缓存脚本导入到一个信号文件中的问题是,如果我决定将来从我的应用程序中删除一个信号,数据将被缓存,并且需要我的用户手动清除站点存储和缓存以删除一个信号。我正在使用Sw precache,并且面临与原始版本相同的问题海报。关于这件事的任何更新@onesignal,因为我的swpreacche服务人员每次都被onesignal SW覆盖。你有没有发现如何最好地集成onesignal?我使用sw precache,面临同样的问题。