2

Googleのアプリケーションのオフラインおよびキャッシュ機能にプラチナサービスワーカー(Google Polymer Element)を使用しています。私たちが最初にアプリケーションを開くと、ポリマー要素のサービスワーカーが起動します。アプリは正常に動作します。1人のサービスワーカープロセスが別のサービスワーカープロセスとその逆を停止

プッシュ通知用にOne Signal(3rd Party)を購読すると、そのサービスワーカーが実行されプラチナサービスワーカーは実行を停止します(登録解除)。私たちが再びアプリケーションをリロードすると、同じシグナルサービスワーカーが実行を停止(登録解除)し、プラチナサービスワーカーが実行を開始します。

サービスワーカーの両方が互いに影響を与えずに独立して動作するようにしたいと考えています。私にいくつかの提案をお願いします。

+0

あなたは最高の信号をどのように統合するかを知りましたか?私はsw - precacheを使用して、同じ問題に直面しています。 – jasan

答えて

1

サービス担当者OneSignalSDKWorker.jsおよびOneSignalSDKUpdaterWorker.jsは、最上位(サイトルート)サービスワーカースコープに登録されている他のサービスワーカーを上書きします。他のサービスワーカーを弊社のサービスワーカーに代入することは可能でしょうか?

は、つぎのようにします。

現在OneSignalSDKWorker.jsOneSignalSDKUpdaterWorker.jsの両方のコンテンツの内容は、次が含まれています。

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDK.js'); 

あなたの他のサービスワーカーファイルをインポートするOneSignalSDKWorker.jsOneSignalSDKUpdaterWorker.jsの内容の両方を変更してくださいこのように:

importScripts('https://example.com/my-other-service-worker.js'); 
importScripts('https://cdn.onesignal.com/sdks/OneSignalSDK.js'); 

上記のappr私たちのWeb SDKはルートスコープに登録されている他のワーカーを上書きし、それらを私たちの私たちに置き換えるため、サービスワーカーを別のファイルにインポートするのではなく、

サービスワーカーをhttps://example.com/other-worker.jsのようにルートスコープに登録しようとしている場合にのみ適用されます。 https://example.com/some-subdirectory/other-worker.jsのような特定のサブディレクトリにサービスワーカーを登録しようとしている場合は、サービスワーカーを交換しないでください。

サービスワーカーの詳細can be read here

+0

other-service-worker.jsへの相対パスでインポートしたい場合でもまだ動作していません – ihsansat

+0

他のオフラインキャッシュスクリプトを1つのシグナルファイルにインポートする際の問題は、データはキャッシュされ、ユーザーは手動でサイトストレージを消去し、1つの信号コードを削除するためにキャッシュする必要があります – jasan

+0

私はSw-precacheを使用しており、元のポスターと同じ問題に直面しています。私のswpreaccheサービスワーカーは、毎回one信号SWで上書きされるので、この問題のアップデートは一切ありません。 – jasan

関連する問題