我现在正在测试PWA应用程序.
在Android中,它运作良好.即使在获得背景后,PWA应用程序仍保持状态,用户可以继续体验.
但是在iOS中,每次PWA应用程序运行后,它都会被初始化,并且每个条件都会像重新加载一样被粉碎.用户体验终止.
我怎样才能在iOS中阻止这种情况?
我通过开发人员的控制台在Windows上安装了我的PWA,现在无法卸载它以测试安装它.我已经尝试从chrome中删除服务工作者,但是在我通过Windows打开PWA之后它将被重新注册(如果服务器已打开).当我右键单击它并选择卸载它会带我到Windows应用程序和功能没有它的条目,同时它的实际快捷方式肯定只会导致带有URL中的应用程序ID的chrome.尝试在我尝试过的所有东西后安装PWA都不会再次提示我将其添加到主屏幕.
我有两个子域名:https://abc.xxxx.com和https://xyz.xxxx.com.所以我的问题:
1).是否可以从https://abc.xxxx.com注册https://xyz.xxxx.com的服务工作者 ?如果是的话怎么样?
2).如果http://abc.xxxx.com(http不安全),那么无论如何从http://abc.xxxx.com注册https://xyz.xxxx.com的服务工作者,如在iframe或其他什么....
这是一个真实的情况,我正面临着我的多个子域.任何帮助赞赏.提前致谢.
Polymer Starter Kit和Polymer App Toolbox有什么区别?
两者都是Web组件,构建和测试工具以及用于使用Polymer构建Progressive Web Apps的Material Design模板的集合.
我应该以新项目为基础的哪一个?
polymer polymer-1.0 polymer-starter-kit progressive-web-apps polymer-cli
我看到我们可以使用https://whatwebcando.today/检查移动浏览器的功能,但是当不在前台运行时是否可以查询硬件API?
我的意思是......使用PWA,我能够构建一个应用程序,在后台运行时获取硬件信息,就像Octo U,Android一样,并将这些信息发布到Web服务器上?
是否有任何方法可以在iOS-Safari中安装的PWA中打开网站(PWA)网址?
使用案例:我正在发送电子邮件链接以登录我的PWA,如何使用已安装的PWA而不是浏览器直接打开此URL?
我正在尝试在需要身份验证(通过 Cookie 管理的登录令牌)的网站上启用 PWA。
我正在本地(http://localhost:4502)尝试此操作并登录(并发出登录cookie)网站。
问题是当请求 Web 应用清单时,请求中没有发送 Cookie,因此请求未通过身份验证。
<link rel="manifest" href="/content/site-x/manifest.json">
Run Code Online (Sandbox Code Playgroud)
如您所见,清单与包含它的网页使用相同的主机/方案。
对清单的请求是否传递了 cookie?我什至将我的登录 cookie 设置得尽可能宽松,但没有。cookie 是在所有其他请求(JS、CSS 等)上发送的——也许 localhost 有什么特别之处吗?或者它不是http?
我一直在使用React和Next.js开发应用程序,目前正在添加PWA支持.
用户通过Google OAuth流程登录该应用.我最初使用的是JS客户端,它使用弹出窗口,但在PWA中遇到了错误.我现在通过将用户重定向到Google的OAuth网址来使用正常的OAuth流程.
这在浏览器中工作正常.在iOS上的独立PWA中,它会在新的Safari窗口中打开OAuth页面.这意味着OAuth流程在Safari中执行,最后用户在Safari中使用应用程序而不是独立的PWA.
我正在使用这种方法重定向:
export function setHref(newLocation: string) {
window.location.href = newLocation;
}
Run Code Online (Sandbox Code Playgroud)
这甚至看起来是每个人都建议在重定向PWA时避免弹出窗口的方法.这最近改变了吗?或者是否有另一种方法可以在独立的渐进式Web应用程序中执行重定向/ OAuth流程?
我按照" https://angular.io/guide/service-worker-getting-started "中的说法完成了我的应用程序PWA.
正是使用了这个命令:
ng add @angular/pwa
npm install http-server -g
ng build --prod
http-server -p 8080 -c-1 dist
Run Code Online (Sandbox Code Playgroud)
然后我在Chrome上打开了这个网址(隐身)
当我为开发人员打开工具(f12)>应用程序>服务工作者时,没有可用的服务工作者,当我在那里设置离线时,网站不起作用.
有关我的角应用的其他信息:
package.json :(最重要的)
"@angular/core": "^7.0.2",
"@angular/pwa": "^0.10.6",
"@angular/service-worker": "^7.0.4",
"@angular-devkit/build-angular": "^0.10.6",
"@angular/cli": "^7.0.6",
Run Code Online (Sandbox Code Playgroud) service-worker progressive-web-apps angular-cli angular angular7
我们的要求是让我们的用户通过 URL 登录到一个应用程序,并且在将应用程序作为 PWA 添加到他们的主屏幕后,保持登录状态,这样就不需要第二次登录到已安装的 PWA 了。这在 Android/Chrome 下当然是可能的,其中登录状态最初可以由 PWA 通过各种机制(包括 cookie、IndexedDB、缓存)存储和访问。
但是,现在在我们看来,iOS 14/iPadOS 14 下的 PWA 是紧密沙箱化的,Safari 无法将登录状态传递给它。多年来,通过各种版本的 iOS,提供了各种共享机制,但在后续版本中已过时。这些包括:
一种不依赖浏览器共享存储的机制是将服务器生成的令牌添加到 URL ( ref ), ( ref ) - 这里的问题是它扰乱了 Android/Chrome,它start_url在网络中使用未修改的应用清单。
多年来,这是一个引发了许多 SO 问题的问题(上面提到了其中三个),其中一些已经得到了解决方案的回答,这些解决方案显然在早期版本的 iOS 下有效。我们现在想要的是一个既能在最新版本下运行又能在 Android/Chrome 下运行的解决方案。有什么优惠吗?
ios ×3
javascript ×3
angular ×1
angular-cli ×1
angular7 ×1
cookies ×1
google-oauth ×1
oauth ×1
polymer ×1
polymer-1.0 ×1
polymer-cli ×1
pwa ×1
safari ×1