サーバーでホストし、メールやソーシャル メディアなどでリンクする必要があるページの具体例を次に示します。アプリの URI と App Store リンクを置き換えるだけです。iframe はより多くのブラウザーで動作することに注意してください。
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
window.onload = function() {
// Deep link to your app goes here
document.getElementById("l").src = "my_app://";
setTimeout(function() {
// Link to the App Store should go here -- only fires if deep link fails
window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8";
}, 500);
};
</script>
<iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
</body>
</html>
そのため、ユーザーがアプリをインストールしている場合、URI とのリンクは成功し、App Store にリダイレクトするためのスクリプトがトリガーされる前にブラウザーが終了します。ユーザーがアプリを持っていない場合、リダイレクトは成功します (短い醜いエラー メッセージの後)。
最初に Cookie に依存し、JavaScript リダイレクトのみをフォールバックとして使用する (エラー メッセージを回避する) 2 つ目の可能性があります。ロジックは次のとおりです。
アプリを持っていないユーザーがアプリへのリンクを最初にタップすると、そのユーザーは直接 App Store にリダイレクトされます。これは、アプリへのリンクが、実際にはリダイレクトを使用してサーバー上で動的に生成されたページであることによって実現されます。バックエンドで Cookie を作成し、IP アドレス、OS、OS バージョンなどの「デジタル フィンガープリント」をログに記録します。
ユーザーがアプリをインストールして開くと、別の「デジタル指紋」が収集され、バックエンドに送信されます。これで、バックエンドはリンクがインストールされたことを認識します。その後アプリに関連付けられたリンクにアクセスすると、サーバーは、リクエストで送信された Cookie に基づいて、動的に生成されたリダイレクト ページが App Store ではなくアプリにつながることを確認します。
これにより、醜いリダイレクトを回避できますが、さらに多くの作業が必要になります。私はこれを構築したBranchで働いており、それを使用したい開発者に提供しています。ゼロからの構築についてご不明な点がございましたら、お気軽にお問い合わせください。