web-dev-qa-db-ja.com

iOS113でのPWAの問題

私は自分の電話を11.3に更新するまで完全に使用していたPWAを持っています(Service Workersのサポートを紹介するので、私のiPhoneではブックマークにすぎませんでした)そしてすべてが魅力のように機能しました。 iOS 11.3にアップデートした後、(他のドメインに)外部ログインがあるためアプリに入ることができませんでした。そのため、開こうとするたびにサファリブラウザーが開き、認証が行われます。 iOSのPWA以前は、外部URLは同じオープンで開かれていました(オープンサファリなし)。これが正しい動作であるかどうかを知っていますか?問題がない場合は、どうすれば修正できますか?

ありがとう!

6
Sergio

前回のiOSバージョン11.4でこの問題は解決されたようですが、サファリはブラウザとPWAの間でコンテキストを共有し、たとえばPWAからサファリをスローしてアクセスできるようになっていると思います。しかし、PWAを開いて、ログインするとログインにリダイレクトされる(safariが開く)場合は、まだ問題があると思います(iOSはPWAに戻りませんが、これは最初のステップです)

0
Sergio

マニフェストメタタグを削除することで、これを修正することができました。

<link rel="manifest" href="/tracker/site.webmanifest">

私のプロジェクトは、ログインにGoogleのOAuthを使用する単純なPWAです。ログインするためにSafariにリダイレクトされ、(ホーム画面で)アプリに戻ることができませんでした。うまくいくことを願っています。また、私は解決策を見つけるために2日を無駄にしました。

Anandの回答によると、オフライン対応のPWAは、11.3(または11.4、不明)および[〜#〜] not [〜#〜]マニフェストでサポートされているため、サービスワーカーを実装する必要があります。

とにかく、これは私のために働いた、それが他の人にも役立つことを願っています。

5
Nikolay Dyankov

サービスのないPWAが機能する場合(ブラウザがサポートしていないか、アプリにサービスがない場合)、ホーム画面に追加されます。これは単なるブックマークです。ブラウザがSWを見つけると、パッケージ(apkなど)を作成します。

これをテストする方法-AndroidでサービスワーカーのいないPWAサイトを見つけてホーム画面に追加します。Samsungデバイスの1つで試したところ、「削除」オプションのみが表示され、アンインストールオプションは表示されませんでした。SWを備えたPWAを追加したときに、アンインストールオプションを取得しました。また、サービスワーカーが存在する場合、Chromeによって生成されたapkを見つけることができました。

今iOSで-私が考えることができる3つの可能性。 1)Service Workerがある場合とない場合のPWAでの上記の動作に基づく私の理論では、iOS 11.2.xによって作成されたホームアイコンはブックマークであり、新しいバージョンのsafariはそれをブラウザーで開くためのブックマークとして扱います。すでに11.3にアップグレードしていて、11.3より前のPWAアイコンがないため、これをテストできませんでした。

2)アイコンを再インストールしても(ホーム画面を削除して再度追加することで)問題が解決しない場合は、マニフェストファイルまたはServiceWorkerファイルにSafariとの問題/互換性がある可能性があります。

サファリ用のLighthouseのようなものがないため、manifest.jsonとサービスワーカーを Chrome Lighthouse で検証できます。

3) スコープ属性を確認してください マニフェストファイルで、カバーする予定のドメイン全体をカバーしていることを確認してください。スコープがdomain.com/myappのみをカバーしている場合、任意のソースから開こうとすると、domain.com/otherappがブラウザーで開かれます。

1
Anand