渐进式 Web 应用程序 (PWA) 运行 可以作为移动设备上的后台服务从硬件(加速度计、gps...)获取数据吗?
Can a progressive web app (PWA) run a background service on a mobile device to get data from hardware (accelerometer, gps...)?
我知道我们可以使用 https://whatwebcando.today/ 检查移动浏览器的功能,但是当 运行 不在前台时可以查询硬件 API 吗?
我的意思是...使用 PWA,我是否能够构建一个应用程序来获取硬件信息,同时 运行 在后台,就像 Octo U,对于 Android,并将该信息发布到网络服务器?
运行 代码 "in the background" 的现代方法是使用 service worker,通过其 push
事件处理程序(通过传入推送消息触发),或者通过其 sync
事件处理程序(由先前失败的任务的自动重播触发)。
目前无法从服务工作者内部访问您所询问的硬件传感器类型。
服务工作者 运行 在事件驱动模型上。这意味着它们仅在注册事件时启动(浏览器 UI 现在发出网络请求、推送通知和后台同步)。
我认为您要求的是地理围栏功能。 AFAIK 这是正在讨论添加到 SW 模型的内容。如果不是,那应该是因为它对于营销目的非常有价值。我知道它正在本机应用程序中使用,所以我认为它会受到关注。
GPS 可从前端访问,多年来一直在浏览器中使用。但是,用户需要在浏览器中加载您的 site/PWA。
我知道我们可以使用 https://whatwebcando.today/ 检查移动浏览器的功能,但是当 运行 不在前台时可以查询硬件 API 吗?
我的意思是...使用 PWA,我是否能够构建一个应用程序来获取硬件信息,同时 运行 在后台,就像 Octo U,对于 Android,并将该信息发布到网络服务器?
运行 代码 "in the background" 的现代方法是使用 service worker,通过其 push
事件处理程序(通过传入推送消息触发),或者通过其 sync
事件处理程序(由先前失败的任务的自动重播触发)。
目前无法从服务工作者内部访问您所询问的硬件传感器类型。
服务工作者 运行 在事件驱动模型上。这意味着它们仅在注册事件时启动(浏览器 UI 现在发出网络请求、推送通知和后台同步)。 我认为您要求的是地理围栏功能。 AFAIK 这是正在讨论添加到 SW 模型的内容。如果不是,那应该是因为它对于营销目的非常有价值。我知道它正在本机应用程序中使用,所以我认为它会受到关注。 GPS 可从前端访问,多年来一直在浏览器中使用。但是,用户需要在浏览器中加载您的 site/PWA。