Branch.io - ContinueActivity 未返回正确的 ActivityType
Branch.io - ContinueActivity not returning correct ActivityType
我目前正在为我们的 Titanium iOS-app 实施 Branch.io。使用最新的 4.8 Studio 和 Titanium SDK 6.0。
到目前为止,集成一切正常,除了当我尝试打开应用程序时,当它是 "cold dead" 时,我们没有从创建的 Activity 中获得正确的 activityType。
使用了"continueactivity"的事件监听器,但是activityType是:"NSUserActivityTypeBrowsingWeb"而不是我在Entitlements.plist文件中指定的。
这是我们当前的代码:
var Branch = require("io.branch.sdk");
Branch.addEventListener("bio:initSession", branchInitCallback); // When opened via Branch, when app is "active"
Ti.App.iOS.addEventListener("continueactivity", branchContinueActivity); // If opened via Branch, when "hard closed"
// Create the Activity incase the app is Super-closed
var branchActivity = Ti.App.iOS.createUserActivity(
{
activityType: 'io.branch.{appname}.universalLink'
});
branchActivity.becomeCurrent();
Branch.initSession();
// Branch Callbacks
function branchInitCallback(_data)
{
Ti.API.info("inside onInitSessionFinished");
alert("init: " + JSON.stringify(_data));
console.log(_data);
if(_data)
{
if(_data["+clicked_branch_link"] != undefined && _data["+clicked_branch_link"] == 1)
{
alert("CLICKED BRANCH LINK");
}
}
}
function branchContinueActivity(e)
{
Ti.API.info("inside continueactivity: " + JSON.stringify(e));
if (e.activityType === 'io.branch.{appname}.universalLink')
{
Branch.continueUserActivity(e.activityType, e.webpageURL, e.userInfo);
}
alert("continue:" + JSON.stringify(e));
console.log(e);
var sessionParams = Branch.getLatestReferringParams();
alert("session: " + JSON.stringify(sessionParams));
console.log(sessionParams);
}
这意味着函数 "branchContinueActivity" 没有触发分支函数 "continueUserActivity"。
我们当然添加了:
<key>NSUserActivityTypes</key>
<array>
<string>io.branch.{appname}.universalLink</string>
</array>
进入tiapp.xml
我们做错了什么?
来自 Branch.io 的 Alex:在没有看到更多代码的情况下,这很难调试。我们在 Titanium SDK 文档中介绍了针对这种情况的解决方案 here, and there is also a fully functional Titanium Testbed app 您可以作为参考。
如果您仍然 运行 遇到困难,最好的选择是向我们的 Integrations team or an issue on the SDK GitHub repo 提交工单,以便我们更轻松地进行调试。
我目前正在为我们的 Titanium iOS-app 实施 Branch.io。使用最新的 4.8 Studio 和 Titanium SDK 6.0。
到目前为止,集成一切正常,除了当我尝试打开应用程序时,当它是 "cold dead" 时,我们没有从创建的 Activity 中获得正确的 activityType。
使用了"continueactivity"的事件监听器,但是activityType是:"NSUserActivityTypeBrowsingWeb"而不是我在Entitlements.plist文件中指定的。
这是我们当前的代码:
var Branch = require("io.branch.sdk");
Branch.addEventListener("bio:initSession", branchInitCallback); // When opened via Branch, when app is "active"
Ti.App.iOS.addEventListener("continueactivity", branchContinueActivity); // If opened via Branch, when "hard closed"
// Create the Activity incase the app is Super-closed
var branchActivity = Ti.App.iOS.createUserActivity(
{
activityType: 'io.branch.{appname}.universalLink'
});
branchActivity.becomeCurrent();
Branch.initSession();
// Branch Callbacks
function branchInitCallback(_data)
{
Ti.API.info("inside onInitSessionFinished");
alert("init: " + JSON.stringify(_data));
console.log(_data);
if(_data)
{
if(_data["+clicked_branch_link"] != undefined && _data["+clicked_branch_link"] == 1)
{
alert("CLICKED BRANCH LINK");
}
}
}
function branchContinueActivity(e)
{
Ti.API.info("inside continueactivity: " + JSON.stringify(e));
if (e.activityType === 'io.branch.{appname}.universalLink')
{
Branch.continueUserActivity(e.activityType, e.webpageURL, e.userInfo);
}
alert("continue:" + JSON.stringify(e));
console.log(e);
var sessionParams = Branch.getLatestReferringParams();
alert("session: " + JSON.stringify(sessionParams));
console.log(sessionParams);
}
这意味着函数 "branchContinueActivity" 没有触发分支函数 "continueUserActivity"。
我们当然添加了:
<key>NSUserActivityTypes</key>
<array>
<string>io.branch.{appname}.universalLink</string>
</array>
进入tiapp.xml
我们做错了什么?
来自 Branch.io 的 Alex:在没有看到更多代码的情况下,这很难调试。我们在 Titanium SDK 文档中介绍了针对这种情况的解决方案 here, and there is also a fully functional Titanium Testbed app 您可以作为参考。
如果您仍然 运行 遇到困难,最好的选择是向我们的 Integrations team or an issue on the SDK GitHub repo 提交工单,以便我们更轻松地进行调试。