【问题标题】:Is PWA supposed to work only for SPA?PWA 应该只适用于 SPA 吗?
【发布时间】:2017-12-18 15:32:03
【问题描述】:

我正在尝试将基于 webview 的应用程序转换为 PWA。此应用不是 SPA,该应用会为链接重新加载整页并执行常规表单 POST 提交。

我注意到 POST 的范围 (manifest.json) 似乎超出了应用范围。当我提交表单 POST 时,它会像范围之外的页面一样打开,然后自动关闭它,并在后台/独立页面中处理来自提交的响应。

manifest.json:

{ /* description/name/icons attributes */ "display": "standalone", "start_url": "dashboard/classes?utm_source=web_app_manifest", }

这是预期的吗?

【问题讨论】:

  • 听起来问题与 PWA 无关。 Web Manifest 不知道您的 JavaScript 内容处理策略是什么,或者根本不知道是否有任何 JavaScript。我会在您的 POSTing 代码所在的地方寻找问题。
  • @NOtherDev hm 似乎问题出在 HTTP 重定向 301/302 上。如果我点击一个链接 /dashboard 并且它重定向到 /dashboard/another-page 或者如果我提交一个表单并且应用程序重定向到另一个页面它会做奇怪的事情。看来从301/302的响应到最终位置200,Android中的app似乎超出了范围。这有意义吗?

标签: android progressive-web-apps


【解决方案1】:

问题解决了。问题出在 Rails 的 redirect_to 上,它使用 HTTP 而不是 HTTPS 返回 Location 标头,导致 URL 超出应用范围。

  1. 应用(范围内)=>
  2. 表单提交(范围内)=>
  3. 重定向到 HTTP(范围外)=>
  4. CloudFlare 页面规则重写为 HTTPS =>
  5. 应用(范围内)

【讨论】:

    猜你喜欢
    • 2019-11-29
    • 2016-12-25
    • 1970-01-01
    • 2012-10-20
    • 2020-10-04
    • 2020-02-12
    • 2020-01-13
    • 2011-04-24
    • 1970-01-01
    相关资源
    最近更新 更多