有人可以澄清 IOS Safari Service Worker 支持吗
Can someone clarify IOS Safari Service Worker Support
查看 MDN 文档 IOS/Safari 完全支持 ServiceWorkerGlobalScope.onfetch
但是当您查看 FetchEvent
规范时它说 Safari 根本不支持它。
特别是,我想为每个客户端存储一些状态,并希望使用事件的 fetchEvent.clientId
属性 对其进行索引。当然,我假设我也可以访问 fetchEvent.request
对象,否则我看不到服务工作者如何做任何有用的事情,我可以从 url 中传入的参数模拟 clientID。但是文档并没有真正告诉我 IOS/Safari 支持什么,不支持什么,所以我不知道该走哪条路。
谁能准确告诉我 IOS/Safari 在调用定义的 onfetch 函数时传递了什么。
我使用 https://jakearchibald.github.io/isserviceworkerready/demos/fetchevent/
找到了问题的答案
正在将我的 iPad 连接到我的 Macbook 并调试我的 iPad。我最终能够为该页面的 Service worker 打开 Web 检查器,console.log 显示传入的事件。
FetchEvent.clientID
存在,但字符串长度为零。碰巧我在我的 (linux) 桌面上使用 Chrome 做了同样的事情,它也是一个零长度字符串,但它有另一个参数 resultingClientId
,其中看起来像一个 UUID . Safari 中没有该参数。
FetchEvent.request
在那里,特别是 URL。所以我可以在客户端中生成我自己的客户端 ID(我使用 Date.now().toString()
因为这对我的目的来说已经足够好了)以供服务工作者使用。事实上,我没有服务人员的网站正在使用 URLs 我已经需要拦截了,所以我很高兴我有一个解决方案。
查看 MDN 文档 IOS/Safari 完全支持 ServiceWorkerGlobalScope.onfetch
但是当您查看 FetchEvent
规范时它说 Safari 根本不支持它。
特别是,我想为每个客户端存储一些状态,并希望使用事件的 fetchEvent.clientId
属性 对其进行索引。当然,我假设我也可以访问 fetchEvent.request
对象,否则我看不到服务工作者如何做任何有用的事情,我可以从 url 中传入的参数模拟 clientID。但是文档并没有真正告诉我 IOS/Safari 支持什么,不支持什么,所以我不知道该走哪条路。
谁能准确告诉我 IOS/Safari 在调用定义的 onfetch 函数时传递了什么。
我使用 https://jakearchibald.github.io/isserviceworkerready/demos/fetchevent/
找到了问题的答案正在将我的 iPad 连接到我的 Macbook 并调试我的 iPad。我最终能够为该页面的 Service worker 打开 Web 检查器,console.log 显示传入的事件。
FetchEvent.clientID
存在,但字符串长度为零。碰巧我在我的 (linux) 桌面上使用 Chrome 做了同样的事情,它也是一个零长度字符串,但它有另一个参数 resultingClientId
,其中看起来像一个 UUID . Safari 中没有该参数。
FetchEvent.request
在那里,特别是 URL。所以我可以在客户端中生成我自己的客户端 ID(我使用 Date.now().toString()
因为这对我的目的来说已经足够好了)以供服务工作者使用。事实上,我没有服务人员的网站正在使用 URLs 我已经需要拦截了,所以我很高兴我有一个解决方案。