有人可以澄清IOS Safari Service Worker支持

问题描述 投票:0回答:1

查看MDN文档,IOS / Safari完全支持ServiceWorkerGlobalScope.onfetch,但是当您查看FetchEvent规范时,它表示Safari完全不支持。

特别是,我想为每个客户端存储一些状态,并希望使用事件的fetchEvent.clientId属性对其进行索引。当然,我想我也可以访问fetchEvent.request对象,否则我将看不到服务工作者如何做任何有用的事情,并且可以从URL中传入的参数模拟clientID。但是文档并没有真正告诉我IOS / Safari支持什么,也不支持我,所以我不知道该走哪条路。

有人可以告诉我IOS / Safari在调用已定义的onfetch函数时通过了什么。

safari mobile-safari service-worker
1个回答
0
投票
将iPad连接到Macbook并调试iPad。我最终能够为该页面的Service Worker打开Web检查器,console.log显示事件已传入。

FetchEvent.clientID存在,但字符串长度为零。碰巧的是,我使用Chrome在Linux桌面上执行了相同的操作,并且字符串长度也为零,但它具有另一个参数resultingClientId,其中看起来像UUID。 Safari中没有该参数。

FetchEvent.request在这里,尤其是URL。因此,我可以在客户端中生成自己的客户端ID(我正在使用Date.now().toString(),因为它足以满足我的目的),以便在服务工作者中使用。实际上,我没有服务人员的网站已经在需要拦截的URL中使用,因此,我很高兴有解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.