Android 分支 IO referenceParams 为假
Android Branch IO referringParams is false
我现在正在处理 Android 上的分支 io。
有点奇怪。如果我先关闭我的应用程序并单击 link,link 会将我带到我的应用程序并打开应该显示的页面。但是,如果我打开我的应用程序并单击主页按钮,然后单击 link,link 会将我引导至应用程序.. 但该页面未显示。我只是可以看到主页,而没有通过分支 io 路由。
这是我的代码。
@Override
protected void onStart() {
super.onStart();
branchIO();
}
private void branchIO() {
Branch branch= Branch.getInstance();
branch.initSession(new Branch.BranchReferralInitListener(){
@Override
public void onInitFinished(JSONObject referringParams, BranchError error) {
if (error == null) {
try{
Log.d("log", referringParams.toString());
//...my routing logic...
}catch(Exception e){
Log.e("log", "branch io error",e);
}
} else {
Log.i("log", error.getMessage());
}
}
}, this.getIntent().getData(), this);
BranchIO.branchUniversalObject.generateShortUrl(this, BranchIO.linkProperties, new Branch.BranchLinkCreateListener() {
@Override
public void onLinkCreate(String url, BranchError error) {
if (error == null) {
}
}
});
}
如果我先关闭我的应用程序,日志是这样的
D/log: {"$og_title":"₩230000", "~creation_source":5, "$og_description":"blah blah", "+click_timestamp":1512100123,........"}
但是如果我先打开我的应用程序并将其置于后台,日志是这样的
D/log: {"+clicked_branch_link":false,"+is_first_session":false}
我阅读了很多 Whosebug 和 GitHub 页面,但找不到解决方案。
感谢阅读!
编辑
我忘记在 onNewIntent 中使用 this.setIntent(intent)。
所以添加这个之后,效果很好。
@Override
public void onNewIntent(Intent intent) {
this.setIntent(intent);
}
谢谢!
Aaron 来自 Branch.io 这里。
您看到此错误可能有多种原因。这里有一些:
您没有初始化 Branch 和处理您的深层链接
Main/Splash activity.
您的Main/Splashactivity没有
启动模式设置为 singleTask
您没有覆盖 onNewIntent()
在你的 Main/Splash activity
如果您使用的是
CustomApplicationClass,确保你正在初始化 Branch
Branch.getAutoInstance(this);
你可以找到一个例子Main/Splash activity here.
您还可以查看我们的测试平台应用程序,它是 Branch Android SDK here
的完整工作示例
我现在正在处理 Android 上的分支 io。 有点奇怪。如果我先关闭我的应用程序并单击 link,link 会将我带到我的应用程序并打开应该显示的页面。但是,如果我打开我的应用程序并单击主页按钮,然后单击 link,link 会将我引导至应用程序.. 但该页面未显示。我只是可以看到主页,而没有通过分支 io 路由。
这是我的代码。
@Override
protected void onStart() {
super.onStart();
branchIO();
}
private void branchIO() {
Branch branch= Branch.getInstance();
branch.initSession(new Branch.BranchReferralInitListener(){
@Override
public void onInitFinished(JSONObject referringParams, BranchError error) {
if (error == null) {
try{
Log.d("log", referringParams.toString());
//...my routing logic...
}catch(Exception e){
Log.e("log", "branch io error",e);
}
} else {
Log.i("log", error.getMessage());
}
}
}, this.getIntent().getData(), this);
BranchIO.branchUniversalObject.generateShortUrl(this, BranchIO.linkProperties, new Branch.BranchLinkCreateListener() {
@Override
public void onLinkCreate(String url, BranchError error) {
if (error == null) {
}
}
});
}
如果我先关闭我的应用程序,日志是这样的
D/log: {"$og_title":"₩230000", "~creation_source":5, "$og_description":"blah blah", "+click_timestamp":1512100123,........"}
但是如果我先打开我的应用程序并将其置于后台,日志是这样的
D/log: {"+clicked_branch_link":false,"+is_first_session":false}
我阅读了很多 Whosebug 和 GitHub 页面,但找不到解决方案。 感谢阅读!
编辑
我忘记在 onNewIntent 中使用 this.setIntent(intent)。 所以添加这个之后,效果很好。
@Override
public void onNewIntent(Intent intent) {
this.setIntent(intent);
}
谢谢!
Aaron 来自 Branch.io 这里。
您看到此错误可能有多种原因。这里有一些:
您没有初始化 Branch 和处理您的深层链接 Main/Splash activity.
您的Main/Splashactivity没有 启动模式设置为
singleTask
您没有覆盖
onNewIntent()
在你的 Main/Splash activity如果您使用的是 CustomApplicationClass,确保你正在初始化 Branch
Branch.getAutoInstance(this);
你可以找到一个例子Main/Splash activity here.
您还可以查看我们的测试平台应用程序,它是 Branch Android SDK here
的完整工作示例