我有一个SPA,叫做https://www.example.com。并且子页面https://www.example.com/foo中的一个可以被添加为PWA。在从主页导航到/foo时,可以正确安装和注册清单和服务工作者,也可以从A2HS本机按钮安装PWA,但在chrome上不会调用事件beforeinstallprompt。如果刷新了页面/foo,则调用该事件。只有当导航发生在另一个不在PWA范围内的页面时。灯塔审计也通过了/foo上的所有测试。是否有人尝试在SPA上创建多个PWA,或遇到类似问题?
发布于 2021-03-16 21:28:25
我不认为这是一个好的解决方案,但这是我在我的Gatsby.js站点上绕过它的方法:
beforeinstallprompt事件。<html>元素上为自定义事件设置了一个侦听器。beforeinstallprompt触发时,我使用jQuery的$.data()在<html>标签上隐藏了对事件的引用(这不会在页面之间交换出来)-我无法让普通的JavaScript dataset工作,但我可能一直在错误地使用它,而且我还是加载了jQuery。beforeinstallprompt处理程序中,在设置数据之后,我在<html>元素上触发了自定义事件。$( 'html ').data( 'event' )获取对beforeinstallprompt事件的引用,并照常继续。希望这能有所帮助;这感觉很麻烦,但我对PWAs / SPAs / React还很陌生!
https://stackoverflow.com/questions/61271481
复制相似问题