2016-11-15 5 views
0

현재 Titanium iOS-app에 Branch.io를 구현하고 있습니다. Titanium SDK 6.0과 함께 최신 4.8 Studio 사용.Branch.io - ContinueActivity가 올바른 ActivityType을 반환하지 않습니다.

"콜드 데드 (cold dead)"일 때 응용 프로그램을 열려고 할 때 생성 된 활동에서 올바른 activityType을 가져 오지 못한다는 점을 제외하면 모든 것이 잘 통합되어 작동합니다.

"continueactivity"의 eventlistener가 사용되지만 activityType은 "NSUserActivityTypeBrowsingWeb"이며 Entitlement.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"을 fireing되지 않음을 의미합니다 :

는 여기에 우리의 현재 코드입니다.

우리는 당연히 추가했습니다 : tiapp.xml

<key>NSUserActivityTypes</key> 
<array> 
    <string>io.branch.{appname}.universalLink</string> 
</array>  

우리가 잘못 여기서 뭐하는거야?

답변

0

Alex from Branch.io : 코드를 더 이상 보지 않아도 디버깅하기가 어렵습니다. 우리는 티타늄 SDK 문서 here에서 이러한 상황에 대한 해결책을 제시했으며 참조 용으로 사용할 수있는 완전한 기능의 Titanium Testbed app도 있습니다.

여전히 어려움에 처한 경우 가장 좋은 방법은 Integrations team 또는 SDK GitHub repo에있는 티켓을 제출하여보다 쉽게 ​​디버깅 할 수 있도록하는 것입니다.

+0

안녕하세요. Alex 님, 귀하의 회신에 감사드립니다. 나는 testbed-app를 설치했고 app-ID를 가진 개발자 포털에 추가했다. (그래서 나는 그것에 AD를 활성화 할 수 있었다.) 필자는 entitlements-file (test-app.link)에 추가 광고를 추가하여 제대로 설정되었는지 확인했습니다. 그래도 링크가있는 앱을 열 수는 없습니다. 수동으로 주소창에 작성하면 사파리에서 "testbed : //"와 함께 작동합니다. 그러나 어떤 Branch-io 링크를 통해서가 아닙니다. 이것에 기초해서, 나는 뭔가를 놓쳤을 가능성이 있는가? – Oakleaf

+0

흠. 네, 그 일을해야합니다. 테스트 베드 앱 데이터로 지점 대시 보드 구성을 업데이트 했습니까 (아니면 새 대시 보드를 만드셨습니까?)? –

+0

새 것을 만들고 유두 환경을 사용합니다. – Oakleaf