ios PWA Как открыть внешнюю ссылку в мобильном сафари по умолчанию (не в браузере приложения) - PullRequest
5 голосов
/ 17 февраля 2020

Я делаю PWA в IOS 13.2.

Мне нужно запустить другой PWA в моем приложении, нажав на внешнюю ссылку для этого PWA.

Проблема в том, что мой PWA открывает все внешние ссылки в браузере приложения. Как вы знаете, мы не можем добавить PWA на главный экран в браузере приложения.

Как заставить PWA открывать внешние ссылки в мобильном сафари по умолчанию?

Ответы [ 5 ]

3 голосов
/ 27 февраля 2020

Это будет отлично работать на всех iOS версиях с поддержкой PWA. (Я знаю это, потому что я давний пользователь iOS):

Добавьте target="_blank" ко всем ссылкам, которые у вас есть. Это откроет их в мобильном сафари по умолчанию.

Например:

<a href="/page" target="_blank">Page</a>
0 голосов
/ 27 февраля 2020
@IBAction func openURL(_ sender: Any) {
// check if website exists
guard let url = URL(string: "https://apple.com") else {
    return
}

let safariVC = SFSafariViewController(url: url)
    present(safariVC, animated: true, completion: nil)
}
0 голосов
/ 25 февраля 2020

Я бы лично попробовал ссылку target="_blank" на href. Я также добавил бы rel="noreferrer external", чтобы гарантировать, что это согласуется с различными реализациями веб-просмотра. Должен также быть способ сделать это через файл манифеста, хотя я не совсем уверен, как это работает в iOS.

0 голосов
/ 27 февраля 2020

Как ваше приложение будет работать в зависимости от того, что вы настроили в файле manifest.json.

В файле manifest ключ scope определяет, какая ссылка откроется внутри PWA, а какая откроется. в браузере.

Например, маршрут в myapp откроется внутри PWA, а другой будет снаружи.

{
  "name": "My App",
  "start_url": "/myapp",
  "scope": "/myapp",
  "display": "standalone"
}
0 голосов
/ 22 февраля 2020

Ios13.4 исправил проблему доступа к камере (getUserMedia) в автономном режиме. В бета-версии сейчас. Должен быть в марте

...