web-dev-qa-db-ja.com

アプリがインストールされていない場合、アプリストアにリダイレクトします

シナリオは、ユーザーが自分のメールへのリンクを取得することです。ユーザーがリンクをクリックすると、アプリが既にインストールされている場合はアプリが開き、アプリがインストールされていない場合はアプリストアにリダイレクトされます。

ディープリンクの実装を見てきましたが、バックエンドにも実装が必要だと思います。誰もこれを助けることができますか?

インストールされている場合はアプリケーションにリダイレクトし、インストールされていない場合はApp Storeにリダイレクトします

これを経た。もっと良い方法はありますか?

4
Ramcharan Reddy

メールで渡したいリンクはhttpsリンクだと思います。その場合、iOSがそれをアプリにリダイレクトできるようにするには、 ユニバーサルリンク を実装する必要があります。この実装では、応答したいドメインをentitlementsファイルに登録し、 Apple-app-site-association ファイルをバックエンドに追加する必要があります。これにより、Appleは、応答しようとしているドメインが本当に自分のものであることを確認できます。

これにより、アプリがインストールされると、独自ドメインのリンクに応答できます。

これで、特定のhttpsドメインに応答できるインストール済みアプリがない場合、システムはブラウザーでそれを開くだけです。したがって、AppStoreがドメインのリンクを開くように強制する方法はありません。つまり、SafariでWebページが開いたら、実行中のデバイスがiOSかどうかを確認し、AppStoreアプリでアプリのページを開くようにシステムに要求します。ただし、それでもSafariを通過する必要があります。

とにかく、iOSにWebページでAppStoreを開くように要求するには、次のようにitms-appsを使用できます。

const iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);

if (iOS) {
  // Just use the link of your app on the AppStore and replace https:// with itms://
  window.location.href = "itms://iTunes.Apple.com/us/app/google-maps-transit-food/id585027354?mt=8";
}

// Here I'm redirecting to Google Maps on AppStore app.

:これは概念を説明するための非常に単純な例であり、ブラウザが本当にSafariであるかどうかさえチェックしません。このために mobile-detect.js のようなlibを使用できます

6
Murilo Paixão