9

Chrome iOS アプリを使用すると、ディープリンクが完全に機能します。しかし、サファリでは機能しなくなり、アプリがインストールされていても常にアプリストアページにリダイレクトされるか、「アドレスが無効なため、サファリはページを開くことができません」というアラートが表示されることがあります。数日前にすべてが完璧に機能します。私の推測では、これはios 9.2のアップデート後に発生します。これに対する解決策はありますか?

アップデート

新しい電話(以前にインストールされていないアプリ)を使用して、アプリをインストールしました。

ディープ リンクは両方のブラウザー (Safari と Chrome) で機能します。

bnc.lt の進むボタンを押すと、Safari と Chrome の両方の App Store が開きます。

次にリンクのディープリンクを開いたとき:

  • Safari: リンクをアプリ ストアで開くかどうかを尋ねられます。
  • Chrome: アプリを開くかどうか尋ねられ、同時にアプリ ストアにリダイレクトされます。次にディープリンクをクリックしたときにアプリで開くをクリックすると、アプリで開きます。

つまり、ステータス バーの bnc.lt 転送リンクをクリックした後でも、Chrome からアプリを開くことができます。これは、Chrome がアプリ ストアではなくアプリを開くことを要求するためです。

Safariの場合、ディープリンクがアプリではなくアプリストアを常に開く元に戻せない状態になります。

4

2 に答える 2

15

ここの Branch の Alex: これは予想される動作です。残念ながら、iOS 9.2 でユニバーサル リンクが変更されたため、フォールバック オプションは現時点ではかなり制限されています。

TL;DR: これは、ほとんどのユーザーが遭遇しないちょっとしたエッジ ケースですが、Deepviews機能を利用することで簡単に回避できます。

基本的に、ここにあなたが見ているものの背後にあるロジックがあります:

  1. アプリがインストールされていないデバイスでリンクを開くと、bnc.lt サーバーに移動し、アプリを入手できるように App Store にリダイレクトされます。これは良いです。
  2. 初めてアプリがインストールされたデバイスでリンクを開くと、デバイスはユニバーサル リンクを検出し、すぐにアプリを開きます。これはすべてデバイス上でローカルに行われ、bnc.lt サーバーにアクセスすることさえありません。これもいいですね。
  3. 進むボタンを押すbnc.ltと、デバイスに「アプリをすぐに開くのではなく、代わりにこのリンクの Web コンテンツを表示してほしい」と伝えていることになります。Branch リンクの場合、この「Web コンテンツ」は単に App Store へのリダイレクトです。この時点で、Branch はアプリがインストールされているかどうかを知る方法がないため、インストールされていないと仮定する必要があり、上記の 1. と同じ処理が行われます。これはあまり良くありませんが、Apple がシステムを設計した方法により、今のところこれ以上のオプションはありません
  4. 次にリンクを開くと、デバイスbnc.ltは過去にボタンを押したことを記憶しており、Web コンテンツに直接アクセスできます。なぜ Safari がこのようにするのかはわかりません。なぜなら、これが望ましいと思われる多くの状況を想像することができず、ユーザーに多くの混乱を招いているからです

ここでの本当の問題は、アプリをバイパスするために押すbnc.ltと、デバイスがこの設定を記憶し、今後 bnc.lt リンクが表示されるたびに実行されることです。Chrome は 4. で毎回事前に設定を確認しているため、引き続き「機能」しますが、Safari は前進するだけです。次に何が起こるかについては、いくつかのオプションがあります。

  • Apple の理想的な世界では、通常の Web ページにたどり着き、上にスクロールして[アプリで開く] ボタンを使用してこの設定を元に戻すことができます。しかし、Branch はすぐに App Store にリダイレクトするため、これはオプションではありません。Deepviews機能を使用することを検討してください。これ、現在表示されている App Store のリダイレクトの代わりに実際の Web コンテンツを提供するためです。
  • ほとんどの場合、リンクを長押しして [アプリで開く] を選択できますが、このオプションがあることを知らないユーザーには役に立ちません。
  • 最悪の場合、App Store のページが表示され、[インストール] ではなく[開く] ボタンを押すだけです。ブランチの魔法のおかげで、正しい場所にたどり着くことができます!
于 2016-03-04T17:06:04.113 に答える
1

iOS 9.2 以降、Apple はディープ リンク用の URI スキームをサポートしなくなりました。iOS で適切にディープ リンクするには、開発者はユニバーサル リンクを実装する必要があります。

ユニバーサル リンクを使用すると、カスタム URL スキームを標準の HTTP または HTTPS リンクに置き換えることができます。ユニバーサル リンクはすべてのユーザーに対して機能します。ユーザーがアプリをインストールしている場合、リンクによってユーザーはアプリに直接移動します。アプリがインストールされていない場合、リンクをクリックすると、Safari で Web サイトが開きます。

ユニバーサル リンクの詳細については、次を参照してください。

iOS アプリで Universal Links をサポートし、サーバーをセットアップするにはどうすればよいですか?

https://github.com/vineetchoudhary/iOS-Universal-Links


更新 [ 1 ]

ブランチ リンクのしくみ(Branch.io)

Branch のコンテキスト ディープ リンクの基本にロックをかける場合。Branch.io も従来のディープリンクを使用していることがわかった

1. リンクの作成 Mobile SDK を統合すると、ユーザーがクリックしてアプリ内から別のユーザーを共有または招待するたびに、Branch リンクを作成できます。アプリが Branch.io を呼び出し、Branch.io が Branch リンクを返します。

2. データをリンクに結び付ける

3. リンクをクリックする ここに画像の説明を入力

4. データの使用


リンクのクリック手順を確認してください。Branch.io は Web サイトの URL をアプリの URI スキームにマップするだけですが、URI スキームは Safari ではサポートされなくなりました。そのため、iOS 9.2 でディープ リンクするには、Universal Links に移行するか、Branch.io による解決策を待つしかありません。ありがとう。

于 2016-03-04T06:27:29.937 に答える