backgroundLocationBroadcaster detailed info

Background Location Broadcaster detailed info

(Play video)

How does it work more exactly

The app consists of a list of URIs.

If one adds a URI to the list looking like this (the part behind the hashtag is the "keyRemoteControl" (see below)):

https://YOURDOMAIN#0123456789abcdef0123456789abcdef
Then if the user hits "On", the app will make https-requests like this:
https://YOURDOMAIN?dataFromRemoteControl={"keyRemoteControl":"0123456789abcdef0123456789abcdef","iSeq":1,"boCheck":false,"boShow":true,"hideTimer":15,"lat":59.1234567,"lng":17.1234567,"boSetTHide":false}
The querystring consist of one variable dataFromRemoteControl which in turn contains a json encoded object with the following variables:
keyRemoteControl
A 128 bit key in the form of 32 hex letters (0-f). It is used to recognize that the request comes from a valid "remote controller".
iSeq
A sequence number that counts upwards. To prevent replay attacks. (not really needed since TLS prevents replay attacks (so it will be removed))
boCheck
For checking the status (typically returning "Visible" or "Hidden" and how much of the timer remains (see more below))
boShow
Make the user visible or hidden on the receiving site.
lat
latitude
lng
longitude
hideTimer
Number of seconds till the user should be automatically hidden. (should be renamed hideTimerResetValue)
boSetTHide
If the request comes as a result of the user hitting "On" (then boSetTHide=true) or if the request comes from the background process callback (then boSetTHide=false)
If boSetTHide==true then the controlled site should hide the user at tNow+hideTimer.

What should the controlled site return

A string whose first 200 characters are displayed in the Background Location Broadcaster-app.

If the string starts with "Visible" the string is colored green.

If the string starts with "Hidden" the string is colored red.

Otherwise the string is colored black.

Other

One could say that, the native app is a workaround for as long as geolocation (in web apps) doesn't work in service workers.