0

Google Chrome последние (v55.0.2883.87) В этом файле (sw.js) есть различные события. Каждый раз, когда запрашивается файл, запрашивается событие fetch. Как и когда происходят другие события (синхронизация, push) (веб-уведомление api). Я хочу отладить его. Есть ли доступный документ?Сервис-файл рабочего файла офлайн-события

Update: server-key-from-firebase-console

subscription-key-after-subscribing-web-notification

Найдено как толчок уведомление fired--

 String url = "https://fcm.googleapis.com/fcm/send"; 
     URL obj = new URL(url); 
     HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); 

     //add reuqest header 
     con.setRequestMethod("POST"); 
     con.setRequestProperty("Authorization", "key=<server-key-from-firebase-console>"); 
     con.setRequestProperty("Content-Type", "application/json"); 

     String urlParameters = "{\"to\":\"<subscription-key-after-subscribing-web-notification>\"}"; 

     // Send post request 
     con.setDoOutput(true); 
     DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
     wr.writeBytes(urlParameters); 
     wr.flush(); 
     wr.close(); 

     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'POST' request to URL : " + url); 
     System.out.println("Post parameters : " + urlParameters); 
     System.out.println("Response Code : " + responseCode); 

     BufferedReader in = new BufferedReader(
       new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 

     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 

     //print result 
     System.out.println(response.toString()); 

Update 2: Хорошо, теперь я нашел, как огонь синхронизации события в рабочий файл службы либо из инструмента отладки Google Chrome, либо из javascript. Ниже приведен код, который я нашел в блоге Google post.

// Register your service worker: 
navigator.serviceWorker.register('/sw.js'); 

// Then later, request a one-off sync: 
navigator.serviceWorker.ready.then(function(swRegistration) { 
    return swRegistration.sync.register('myFirstSync'); 
}); 

Затем прослушивайте событие в /sw.js:

self.addEventListener('sync', function(event) { 
    if (event.tag == 'myFirstSync') { 
    event.waitUntil(doSomeStuff()); 
    } 
}); 
+0

Вы также можете прослушивать уведомления: 'self.addEventListener ('push', (event) => {});'. Уведомление повышается, когда вы отправляете уведомление через Firebase Notifications, например. – Hosar

ответ

0

Хороший ресурс для зная больше о ServiceWorker является MDN (Mozilla Developer Network).

Вот точка входа в документации, связанной с ServiceWorker:

https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API

Там у вас есть ссылки и объяснения для устройства, закачивать, синхронизации и подтолкнуть события. И там будут документированы новые, которые будут отображаться как синхронизация фона.

Счастливое чтение.

+0

Да, я знаю о синхронизации backgroud, но я не знал о том, как запускать события. У меня тоже есть отдельный вопрос, который я обновил. http://stackoverflow.com/questions/41394299/service-worker-recurring – karman