我对iPhone上的PWA
感到非常困惑。
首先,在展示我的代码之前,我试图检查一个好的 Web 应用程序的外观。 在谷歌中搜索最好的渐进式网络应用程序,我在Safari
年的 iPhone 上打开了所有这些应用程序,然后单击Share button
然后单击Add To Home Screen
。(优步,Flipboard,Twitter,谷歌地图,速卖通等)
从主屏幕打开图标时,它将再次打开Safari
,与我所在的页面相同,就像任何网站一样。
- 没有全屏
- 没有单独的窗口(只是像网站一样在 Safari 中打开)
- 无初始屏幕
- 在Chrome上 - 没有"添加到主屏幕"按钮
基本上只是一个带有图标的网站。
然后我尝试在我的网站上使用页面上的 Googlepwacompat
库执行此操作。
我已将它们添加到页面中head
:
<link rel="manifest" href="manifest.webmanifest" />
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="apple-touch-icon" href="../images/logo.png">
然后是我的 html 底部的 JS 库:
<!-- webapp manifast library -->
<script async src="https://cdn.jsdelivr.net/npm/pwacompat@2.0.6/pwacompat.min.js" integrity="sha384-GOaSLecPIMCJksN83HLuYf9FToOiQ2Df0+0ntv7ey8zjUHESXhthwvq9hXAZTifA" crossorigin="anonymous">
</script>
同样,我正在将此页面添加到主屏幕,但什么都没有。 没有全屏,没有不同的窗口,只有Safari
.
我是否误解了PWA的基本知识?
iOS 开始向 PWA 开放的时间很晚,它仍然需要额外的属性(如您使用的那样)来提供全套 PWA 功能。
在 Chrome DevTools 中,如果转到"应用程序"选项卡(针对您的应用程序),是否可以看到 Web 清单及其属性是否正确显示,以及服务辅助角色?
正如Mathias所说,你需要一个HTTPS连接才能正确地注册服务工作者。然而,对于开发目的,本地主机被认为是"安全的"。
我写了一系列关于PWA的文章,你可以看看并跟随,看看你是否遗漏了什么。
以下是支持服务工作者的浏览器列表(与您正在使用的 safari 版本进行比较)。
<小时 />更新
我在这里回答你的评论:
- 如果某些网站提供PWA(例如。优步,FB)在其他设备上作为PWA工作,但不在您的手机上,那么我会尝试调查您是否缺少设置。我做了一个快速的研究,似乎对于iOS用户来说,使用/启用PWA需要一些额外的步骤:
用户必须使用 Safari 访问 PWA URL,然后手动按"共享"图标,然后按"添加到主屏幕"。没有迹象表明访问的网站是PWA。
关于Chrome中的"添加到主屏幕",当它被删除时,我确实找不到任何官方信息。我只能说,自从最新版本(v74+)之一以来,我再也没有见过它。
- PWA的每个页面都应该是可链接的,以便通过社交媒体应用程序共享它。因此,如果您有一个有效的 PWA 并将链接发送给其他人,这些链接也应该有效。鉴于该应用程序已正确实现,则没有特殊的浏览器限制。
我在下面留下了一些链接,其他人对PWA和iOS 12.2有类似的问题:
- 与讨论链接
- 测试 PWA
- 带有一些提示的文章(这里有一些关于如何使PWA在iOS上运行的建议)