Re: Geofencing alternative proposal

On 18 September 2014 10:27, Marijn Kruisselbrink <mek@google.com> wrote:
> Can you give some sample code how this would look like with your API? I'm
> not quite following how it could. So the browser would "wake up"
> (essentially load from scratch) a service worker, and would then have to
> somehow wait for the service worker code to install event handlers on the
> right geofences? But to get to a GeolocationFence object it would need to do
> possibly asynchronous API calls, so it's not clear to me how this waiting
> could work.

A service worker runs the code in the "install" event when it is
awoken, during which time you would have to register handlers for
global events.  The only difference with having specific registrations
is that you would have to force the install event to wait for the
promise:

this.addEventListener("install", e => {
  e.waitUntil(
    this.geolocation.geofence.getRegistrations().then(fences => {
      fences.forEach(fence => { fence.onenter = handleEnter; });
    })
  );
});

This (e.waitUntil) is a standard feature of service workers.
https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#wait-until-method

Received on Friday, 19 September 2014 15:31:39 UTC