紹介コード システムを実装しようとしており、Branch.io Metrics ライブラリを使用しています。私が直面している問題は、ドキュメントが良くない (機能しない) ことと、コードを生成できないことです。
ライブラリの追加など、私が行った手順は次のとおりです。
1)jarを取得し、libsフォルダーに追加し、以下を依存関係に追加しました
compile files('libs/branch-1.5.9.jar')
2)アプリケーションを拡張するアプリケーションクラスに、次を追加しました
if (DEBUG) {
Branch.getAutoTestInstance(this);
} else {
Branch.getAutoInstance(this);
}
3) AndroidManifest.xml に以下を追加しました
<meta-data android:name="io.branch.sdk.BranchKey" android:value="@string/bnc_app_key" />
4)すべてをテストしているアクティビティで、 onStart() メソッドに次を追加しました
@Override
protected void onStart() {
// note that branch is a global variable (Branch branch;)
if (DEBUG) {
branch = Branch.getTestInstance(this.getApplicationContext());
} else {
branch = Branch.getInstance(this.getApplicationContext());
}
branch.initSession(new BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
if (branchError == null) {}
}, this.getIntent().getData(), this;
}
上記から、branchError が null の場合 (競合がない場合) にデータを取得できる branch.io セッションとリスナーを正常に作成できたと思います。
まだ onStart() の中にいる間に、紹介コードを生成しようとしています。したがって、 onStart() 全体は次のようになります。
@Override
protected void onStart() {
// note that branch is a global variable (Branch branch;)
if (DEBUG) {
branch = Branch.getTestInstance(this.getApplicationContext());
} else {
branch = Branch.getInstance(this.getApplicationContext());
}
branch.initSession(new BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
if (branchError == null) {}
}, this.getIntent().getData(), this;
}
branch.getReferralCode(5, new BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
try {
String code = jsonObject.getString("referral_code");
Log.d(TAG, "code: " + code);
} catch (JSONException e) {
Log.e(TAG, "JSONException :: " + e);
e.printStackTrace();
}
}
});
}
5) onNewIntent オーバーライド メソッドを追加しました
@Override
protected void onNewIntent(Intent intent) {
this.setIntent(intent);
}
私のアプリは onInitFinished リスナーの内部に到達しないため、コードを取得できません。私が見逃したことについての提案は大歓迎です。このスレッドがドキュメントに欠けている穴を埋めることを願っています。