禁止在iOS上安装PWA,仅向主屏幕添加快捷方式

时间:2019-06-27 09:29:49

标签: ios angular progressive-web-apps

我有一个PWA在Android上可以正常使用,但由于iOS对PWA的限制(特别是访问实时摄像机帧)而受到限制,因此PWA在iOS上受到了损害。在Safari中查看时,该应用程序可以正常运行。这是违反直觉的,但不幸的是。

有没有办法告诉iOS,它不应该“安装” PWA,而应该在主屏幕上创建一个快捷方式并在常规Safari中打开它?像其他任何网站一样?

还是我需要针对iOS的不包含manifest.json参考的特定index.html? PWA是单页Angular应用程序。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。我设法通过编程方式删除了AppComponent的OnInit挂钩中的清单元素。

在index.html中:

<link rel="manifest" href="manifest.json" id="manifest-link">

在AppComponent中:

ngOnInit() {

   // ... platform detection
   if (isiOS) {
       const element = document.getElementById('manifest-link');
       console.log(`Removing manifest element on iOS, should suppress PWA installation`);
       element.remove();
    }
}