Подавить установку PWA на iOS, добавить только ярлык на главный экран - PullRequest
1 голос
/ 27 июня 2019

У меня есть PWA, который отлично работает на Android, но урезан на iOS из-за ограничений, налагаемых на PWA, наложенных iOS (в частности, на доступ к живым кадрам камеры). Приложение отлично работает при просмотре в Safari. Это нелогично, но, к сожалению, так.

Есть ли способ сказать iOS, что она не должна "устанавливать" PWA, а просто создать ярлык на домашнем экране и открыть его в обычном Safari? Как на любом старом сайте?

Или мне нужен определенный index.html для iOS, который не содержит ссылку на manifest.json? PWA - это одностраничное приложение Angular.

1 Ответ

1 голос
/ 27 июня 2019

Отвечая на мой собственный вопрос. Мне удалось решить эту проблему путем программного удаления элемента манифеста в хуке OnInit AppComponent.

В 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();
    }
}
...