我有一个PWA在Android上可以正常使用,但由于iOS对PWA的限制(特别是访问实时摄像机帧)而受到限制,因此PWA在iOS上受到了损害。在Safari中查看时,该应用程序可以正常运行。这是违反直觉的,但不幸的是。
有没有办法告诉iOS,它不应该“安装” PWA,而应该在主屏幕上创建一个快捷方式并在常规Safari中打开它?像其他任何网站一样?
还是我需要针对iOS的不包含manifest.json参考的特定index.html? PWA是单页Angular应用程序。
答案 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();
}
}