PWA只运行在Chrome上的桌面?



创建了一个简单的PWA,制作了manifest文件和service worker,它在我的iMac上的Chrome上运行得很好。查看控制台,我可以看到service worker已注册并正在运行,并且它可以识别manifest文件。模拟网络丢失,它仍然运行正常,就像它应该的那样。都很好,对吧?

当我从HTTPS提供它时,它会在手机浏览器中打开,并添加到主屏幕上,就像它应该的那样,但是当我试图从主屏幕上的图标运行它时,我得到的只是一个空白的屏幕。

如果我删除图标,然后从HTTP连接提供它,并将其保存到主屏幕,它会做它应该做的一切,从你放在主屏幕上的图标运行(当从HTTP完成时),但当然不会离线运行。

我做错了什么?甚至不知道从哪里开始找!

问题可能是PWA和API服务器之间的HTTPS请求的CROS访问源。我的PWA也有同样的问题。它在chrome或桌面运行良好,并且我第一次在移动chrome中打开它时运行良好,但是当服务工作者注册时,它返回crs访问源。为了调试这个问题,我建议在您的移动设备上使用chrome inspect。你可以在这里找到指南

检查

Access-Control-Allow-Origin

API和PWA服务器之间的。您必须允许PWA URL访问API服务器。您可以使用PWA URL或*来访问所有URL。

检查

Access-Control-Allow-Headers

API服务器中的。如果你发送请求的身份验证或缓存控制头,你必须将它们添加到Access-Control-Allow-Headers。

和您的PWA和API URL必须具有有效的SSL证书。

还有,检查manifest.json中的start_url

你必须在start_url中设置完整的URL,包括协议,index.html是不必要的。

相关内容

最新更新