后台地理位置ServiceWorker - Web App重新获得焦点时的onMessage事件顺序

时间:2017-05-29 01:00:48

标签: javascript html5 web-applications geolocation service-worker

有关完整的详细信息和更详细的说明,请参阅此W3C服务工作人员issue

这是我的HTML5 Web App场景: -

  • 在我去旅行时,我的网络应用程序已经背景并卡在我的口袋里
  • 当我启动KM时,我的服务工作人员定期接收GPS更新并调用postMessage()将他们排队等待我的应用程序最终在Google地图上绘图
  • 在骑行结束时,我订购啤酒并展示网络应用程序,这样我就可以看到我在哪里,平均速度等等。

我的问题是这些: -

1)在ServiceWorkers触发的所有Message事件之前或之后,Focus事件是否会触发?

2)如果Focus是第一个,setTimer(0,backlogCleared)就足以作为一种启发式机制来建立"所有后台处理的东西"?

3)无论如何都要崩溃postMessage()消息(模式Firebase的推送通知),以便只接收最后/当前消息?

4)如果您对授权后台地理定位所需的权限有任何想法,请在W3C上添加。

干杯,骑马,跑步,航行,开车!

1 个答案:

答案 0 :(得分:5)

我的Brotkrumen Ultimate Web App现已完成。所有源/图像文件都可以在https://drive.google.com/open?id=0B7Rmd3Rn8_hDNW1zSWRoXzBTclU

找到

最重要的设计/建议规范更改是TravelManager订阅现在应该是客户特定的。 TravelEvent必须包含预期的Client.id(TravelEvent.source.id)。这意味着UA必须监控和过滤每个客户端的GeoLocation更新。我还添加了新的演示功能,例如按下“到达”按钮时显示的行程摘要。也可以按“Map Trip”或“Replay”将行程重播到Google地图上。如果行程的最后一个和下一个地理定位更新都在地图窗口中可见,则通过CSS过渡实现平滑的标记移动。

PLEASE 帮助后台GeoLocation启动并帮助Web Apps与Native Apps竞争!

如果我的TravelManager解决方案设计出现问题,请告诉我。撕裂它!