如何使用 Branch.io 指标生成推荐代码?
How to generate referral code using Branch.io Metrics?
我正在尝试实施推荐代码系统,并且我正在使用 Branch.io 指标库。我面临的问题是文档不好(不起作用),我无法生成代码
以下是我采取的步骤,包括添加库。
1) 抓取 jar,添加到我的 libs 文件夹并将以下内容添加到我的依赖关系
compile files('libs/branch-1.5.9.jar')
2) 在我扩展应用程序的应用程序 class 中,我添加了以下内容
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) 在我正在测试所有内容的 Activity 中,我在 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.io 会话和一个监听器,如果 branchError 为 null(没有冲突),我将允许我检索数据
虽然仍在 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 侦听器内部,因此我无法检索任何代码。感谢任何关于我遗漏的建议,希望这个帖子能填补文档缺失的漏洞。
我将假设以下代码行已正确关闭并且没有抛出语法错误:
branch.initSession(new BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
if (branchError == null) {}
}, this.getIntent().getData(), this); // parenthesis wasnt here
首先,如果您要扩展 Application class,您需要在应用 class 的 onCreate()
回调中初始化分支:
public void onCreate() {
super.onCreate();
Branch.getInstance(this);
}
根据找到的 Branch 示例代码 here,您实际上需要调用:
Branch.getInstance();
而不是:
Branch.getInstance(getApplicationContext());
在您的活动中 onCreate
回调。完成后,Branch SDK 将正确创建。
我正在尝试实施推荐代码系统,并且我正在使用 Branch.io 指标库。我面临的问题是文档不好(不起作用),我无法生成代码
以下是我采取的步骤,包括添加库。
1) 抓取 jar,添加到我的 libs 文件夹并将以下内容添加到我的依赖关系
compile files('libs/branch-1.5.9.jar')
2) 在我扩展应用程序的应用程序 class 中,我添加了以下内容
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) 在我正在测试所有内容的 Activity 中,我在 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.io 会话和一个监听器,如果 branchError 为 null(没有冲突),我将允许我检索数据
虽然仍在 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 侦听器内部,因此我无法检索任何代码。感谢任何关于我遗漏的建议,希望这个帖子能填补文档缺失的漏洞。
我将假设以下代码行已正确关闭并且没有抛出语法错误:
branch.initSession(new BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
if (branchError == null) {}
}, this.getIntent().getData(), this); // parenthesis wasnt here
首先,如果您要扩展 Application class,您需要在应用 class 的 onCreate()
回调中初始化分支:
public void onCreate() {
super.onCreate();
Branch.getInstance(this);
}
根据找到的 Branch 示例代码 here,您实际上需要调用:
Branch.getInstance();
而不是:
Branch.getInstance(getApplicationContext());
在您的活动中 onCreate
回调。完成后,Branch SDK 将正确创建。