From d2888547a73fbc370cceeaed535241ea56cf6609 Mon Sep 17 00:00:00 2001 From: Ethan Neff Date: Mon, 3 Apr 2017 18:56:34 -0700 Subject: [PATCH] fix: prevented duplicate data return on ionic 2 terminate and no network --- src/branch.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/branch.js b/src/branch.js index 0bc006d6..efa1da3d 100644 --- a/src/branch.js +++ b/src/branch.js @@ -37,15 +37,21 @@ Branch.prototype.disableGlobalListenersWarnings = function () { Branch.prototype.initSession = function (deepLinkDataListener) { // private method to filter out +clicked_branch_link = false in deep link callback + var previous = '' var deepLinkDataParser = function (deepLinkData) { var isBranchLink = '+clicked_branch_link' var isNonBranchLink = '+non_branch_link' + // TODO: figure out why iOS SDK passes data twice on Ionic 2 terminated and no network connection + var isNewData = JSON.stringify(deepLinkData) !== previous + var isBranchLinkClick = deepLinkData.hasOwnProperty(isBranchLink) && deepLinkData[isBranchLink] === true + var isNonBranchLinkClick = deepLinkData.hasOwnProperty(isNonBranchLink) - // +clicked_branch_link' = true || +non_branch_link - if ((deepLinkData.hasOwnProperty(isBranchLink) && deepLinkData[isBranchLink] === true) || (deepLinkData.hasOwnProperty(isNonBranchLink))) { + // is +clicked_branch_link' = true || +non_branch_link + if (isNewData && (isBranchLinkClick || isNonBranchLinkClick)) { // to Branch.initSession(function(data) {}) deepLinkDataListener(deepLinkData) } + previous = JSON.stringify(deepLinkData) } if (!disableGlobalListenersWarnings && !deepLinkDataListener && !window.DeepLinkHandler) {