- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
无论您喜欢慢跑或骑自行车并想要跟踪您的行程,还是管理卡车、农场或采矿车辆或送货自行车车队,您都需要在 Web 应用程序处于后台或您的设备时跟踪您的地理位置睡着了。
我想知道当今的 Web 应用程序 PWA 是否可以支持使用 Service Worker 在后台实时跟踪用户位置并发送通知之类的功能。
这适用于服务 worker 吗:
window.navigator.geolocation.getCurrentPosition(function(pos) {
console.log('pos: ', pos);
});
当应用程序在后台运行时?
最佳答案
简短回答:否
长答案:-
您并不孤单遇到这个问题。一百万其他开发人员也要求提供同样的功能。
请参阅 W3C 断然拒绝指定的提议 TravelManager 解决方案。 UA vendor 也拒绝实现,原因只有他们自己知道。它比 that 更糟糕; W3C 正试图将地理定位重新发明为传感器,并推迟任何有用或新颖的功能,从而浪费了数十万美元,但更重要的是,浪费了宝贵的时间。
有关完整背景,请参阅 (1) this 或 (2) this.
要笑/哭,请参阅 (3) this.
(1) 这是 W3C ServiceWorker GitHub 存储库中的一个线程,于 2015 年 9 月 5 日首次提出了后台地理定位的问题/要求。这里包含了大量的用例、用户/开发人员高需求的无可辩驳的证据以及建议的解决方案。由于我在该线程中的帖子,我受到了所有 W3C github 存储库的审查,但我让您在未编辑的线程版本中判断其他作者的内容,可以在 here. 中找到
(2) 更多用户要求 W3C 地理定位存储库提供相同的后台地理定位功能。
(3) 有证据表明,W3C 目前正在疯狂地将地理定位重新打造为传感器,同时承认现有 API 将继续得到支持和使用,任何新颖的功能(尤其是后台功能)都将推迟到神话版本 2,除了“版本 1 之后的某个时间”之外没有任何时间线。 他们知道他们生成的主线程或 Web Worker API 不会在 ServiceWorker 环境中工作。难以置信!
(*) 另请注意失败的 W3C 地理围栏 attempt 。更多的钱浪费了宝贵的时间。另请注意,他们会尝试通过电池终止 WakeLock() 来欺骗您(就好像您希望在慢跑时打开屏幕,或者在地理围栏触发器到位时根本不想使用任何其他应用程序一样) 。另外看看 PhoneGap/Cordova 有多受欢迎。为什么? 后台地理定位!
(**) 是的,这可能会让人觉得有点咆哮,但在 4 年的观察中,个性和自负阻碍了基本的 Web 应用程序功能,而这些功能可以让我们与 Native 正面交锋,之后很难保持情感上的超然。应用程序:-(
没有人能够通过详细的 TravelManager 解决方案找出错误! (是的,我们必须处理权限问题,但看看 requestPermission() 解决方案对 iOS/Safari 陀螺仪等传感器关闭的崩溃,我们同意权限是所有人都在进行的工作。(当我说“崩溃”时“这是因为 W3C 多年来一直提示 requestPermission() 是一种“反模式”)))请参阅 W3C permissions 存储库以获取更多被忽略的建议。
关于javascript - 当应用程序处于 sleep 模式时,有没有办法在 PWA 中的服务工作人员中跟踪用户当前位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55290691/
是否有用于手动测试的代码覆盖工具?比如我新写了30行代码,编译,然后运行,有什么办法可以快速验证这30行都运行了吗? 另外,后来,在我将代码 checkin 正式版本后,有什么方法可以验证测试部门在进
老实说,这是一个家庭作业问题,但我已经浪费了好几个小时,而且无法正确解决。它返回错误数量的结果或错误的数据: 我需要选择参与指导电影和/或在电影中表演的每个人以及他们所做的次数,如果至少 5 次。 有
我正在尝试测试 MacOS 的应用内购买。输入测试用户凭据后,App Store 提示:“当前收据无效或 ds 人员 ID 不匹配。”并且购买失败。 最佳答案 我尝试了很多方法来解决这个问题。 Get
我正在为 Jenkins 使用 ActiveDirectory 插件,因此用户必须使用他们的凭据登录到 Jenkins。然后用户在 Jenkins 中被称为 joe.doe,这很完美。 当同一个人 c
如何从 Infopath 人员/组选取器检索电子邮件地址?当我将人员/组选取器添加到 infopath 表单时,我只得到 3 个字段 DisplayName、AccountId、AccountType
在 Snow Leopard 中,可以在 iCal 事件中显示空闲/忙碌时间。我搜索了 CalStore.framework 的 header ,但找不到任何描述该字段的属性。如何检索日历事件的忙/闲
是否有人成功地从专门针对 SharePoint 2013 的新建或编辑表单中获取用户(个人或组)字段的值? 我已经尝试了通过搜索互联网找到的所有解决方案以及我自己能想到的所有解决方案,所有结果都为空白
所以我需要将一个 Twitter 帐户添加到 ABRecordRef 中。然而,最快的方法似乎是获取社交资料属性的多值引用,创建它的可变版本,查找它是否有 Twitter 条目,如果已经有,则创建
我正在尝试将使用 Tomcat(最初是 5.5,但可以与 7 一起使用)在 MyEclipse 中开发的应用程序部署到我们的演示服务器 (Sun Java Web Server 7)。不幸的是,所有设
我是一名优秀的程序员,十分优秀!