私はBranch.ioを使用しているアプリを持っており、インスタントAppsをサポートするためにそれをアップデート中です。この変更の一部では、アプリリンクを使用してアプリのある部分から別の部分にナビゲートする必要があります。Branch.ioとインスタントアプリ
私が始めようとしているアクティビティはBranch.ioを使用するように設定されています(例:https://dev.branch.io/marketing-channels/android-instant-apps/guide/の手順を使用)。それにはonStart()
メソッドが含まれています。しかし、私はreferringParams
のディープリンクに含まれているパラメータを見ていません。
Branch.getInstance().initSession(new Branch.BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject referringParams, BranchError error) {
Log.d("Branch", "onInitFinished() with deep link data: " + referringParams);
}
});
これを行うにはAndroidのコードから分岐リンクを開く必要がありますか?
上記のBTW referringParams
は、+clicked_branch_link
がfalse
であることを示します。
UPDATE
ただ、いくつかのことを明確にします。私はActivityA
からアプリのディープリンクを使用してActivityB
を起動しようとしています。 ActivityB
は、例えば、https://dev.branch.io/marketing-channels/android-instant-apps/guide/に記載されているように、<intent-filter>
を含む。 ActivityA
で私は現在、/開く次のようにBranch.ioのリンクを作成しようとしている(例えばそのandroid-instant-apps
サンプルで使用されているようにも、直接リンクを形成しているが、それは「分岐リンク」と考えていない)
HashMap<String, String> metadata = new HashMap<>();
metadata.put(PARAM, param);
BranchUniversalObject branchUniversalObject = new BranchUniversalObject().addContentMetadata(metadata);
LinkProperties linkProperties = new LinkProperties();
branchUniversalObject.generateShortUrl(context, linkProperties, (url, error) -> {
if (error == null) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
context.startActivity(intent);
}
});
私がgenerateShortUrl
によって生成されたURLを(例えばリンクをクリックして)デバイス上で直接開こうとすると、ActivityB
が起動し、私はinitSession
コールバックに含まれるparamを見ます。私はbetweeen ActivityA
とActivityB
をナビゲート(上記のコードを使用して、それを開こうとすると、その後ActivityB
が起動されますがのparamsを得ることはありません(と+clicked_branch_link
はfalse
です)
キーの不一致が '+ clicked_branch_link'のparamは' false'のを返すために引き起こす可能性がお役に立てば幸いです。正しいテスト/ライブブランチキーを設定していることを再度確認してください(https://stackoverflow.com/questions/38763840/no-deep-link-dataを参照)。また、ブランチリンクとキーが同じブランチアプリケーションに属していることを確認してください。 –
アプリリンクを開くコードでbranch.ioのキーを再生する必要がありますか?もしそうなら、リンクを開くためにいくつかのブランチ固有のコードが必要なのでしょうか? –
ディープリンクデータを受信するには、ディープリンクルーター機能を登録する必要があります( 'initSession'を呼び出すアクティビティで' onNewIntent() 'をオーバーライドしてください)。その後、 'branch.getLatestReferringParams'を呼び出すことでセッションパラメータを取得します https://github.com/BranchMetrics/android-branch-deep-linking#initialization –