Skip to content

Commit 9fe173e

Browse files
authored
Merge branch 'master' into fix516
2 parents dc0e4b6 + 48117c9 commit 9fe173e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+652
-398
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<a name="3.1.0"></a>
2+
# [3.1.0](https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking/compare/v3.0.1...v3.1.0) (2018-10-01)
3+
4+
* Added `sendBranchEvent` for compatibility with v2/event. DEVEX-782 ([55c09b6](https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking/pull/485/commits/55c09b6))
5+
* Added Apple Search Ad methods, `delayInitToCheckForSearchAds` and `setAppleSearchAdsDebugMode`. DEVEX-767 ([1b26156]https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking/commit/1b26156bd7480b2f7fe8609a0483969be3c6d850)
6+
* Upgraded base Branch SDKs to iOS 0.25.5 and Android 2.19.4.
7+
18
<a name="3.0.1"></a>
29
# [3.0.1](https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking/compare/v3.0.0...v3.0.1) (2018-05-07)
310

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,8 @@ _Questions? [Contact us](https://support.branch.io/support/tickets/new)_
326326

327327
* Verify on the [Branch Dashboard](https://dashboard.branch.io/liveview/links)
328328

329+
* All function's parameters are mandatory
330+
329331
```js
330332
// optional fields
331333
var analytics = {
@@ -367,6 +369,8 @@ _Questions? [Contact us](https://support.branch.io/support/tickets/new)_
367369

368370
* Link Data: [Deep Link Properties](#link-data-deep-link-properties)
369371

372+
* All function's parameters are mandatory
373+
370374
```js
371375
// optional fields
372376
var analytics = {

examples/cordova1/platforms/android/app/src/main/assets/www/plugins/branch-cordova-sdk/src/index.js

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
11
cordova.define("branch-cordova-sdk.Branch", function(require, exports, module) {
22
var exec = require("cordova/exec");
3-
var deviceVendor = window.clientInformation.vendor;
3+
var deviceVendor = (typeof window.clientInformation != 'undefined' && typeof window.clientInformation.vendor != 'undefined') ? window.clientInformation.vendor : "unknownVendor";
44
// SDK Class
55
var API_CLASS = "BranchSDK";
66

7+
const standardEvent = {
8+
STANDARD_EVENT_ADD_TO_CART: "ADD_TO_CART",
9+
STANDARD_EVENT_ADD_TO_WISHLIST: "ADD_TO_WISHLIST",
10+
STANDARD_EVENT_VIEW_CART: "VIEW_CART",
11+
STANDARD_EVENT_INITIATE_PURCHASE: "INITIATE_PURCHASE",
12+
STANDARD_EVENT_ADD_PAYMENT_INFO: "ADD_PAYMENT_INFO",
13+
STANDARD_EVENT_PURCHASE: "PURCHASE",
14+
STANDARD_EVENT_SPEND_CREDITS: "SPEND_CREDITS",
15+
STANDARD_EVENT_SEARCH: "SEARCH",
16+
STANDARD_EVENT_VIEW_ITEM: "VIEW_ITEM",
17+
STANDARD_EVENT_VIEW_ITEMS: "VIEW_ITEMS",
18+
STANDARD_EVENT_RATE: "RATE",
19+
STANDARD_EVENT_SHARE: "SHARE",
20+
STANDARD_EVENT_COMPLETE_REGISTRATION: "COMPLETE_REGISTRATION",
21+
STANDARD_EVENT_COMPLETE_TUTORIAL: "COMPLETE_TUTORIAL",
22+
STANDARD_EVENT_ACHIEVE_LEVEL: "ACHIEVE_LEVEL",
23+
STANDARD_EVENT_UNLOCK_ACHIEVEMENT: "UNLOCK_ACHIEVEMENT"
24+
}
25+
726
// Branch prototype
827
var Branch = function Branch() {
928
this.debugMode = false;
@@ -14,6 +33,12 @@ var Branch = function Branch() {
1433
function execute(method, params) {
1534
var output = !params ? [] : params;
1635

36+
if (method == "getStandardEvents") {
37+
return new Promise(function promise(resolve, reject) {
38+
resolve(standardEvent);
39+
});
40+
}
41+
1742
return new Promise(function promise(resolve, reject) {
1843
exec(
1944
function success(res) {
@@ -136,6 +161,28 @@ Branch.prototype.sendCommerceEvent = function sendCommerceEvent(
136161
return execute("sendCommerceEvent", args);
137162
};
138163

164+
165+
Branch.prototype.getStandardEvents = function getStandardEvents() {
166+
return execute("getStandardEvents");
167+
168+
};
169+
170+
Branch.prototype.sendBranchEvent = function sendBranchEvent(
171+
action,
172+
metaData
173+
) {
174+
var args = [action];
175+
if (!action) {
176+
return executeReject("Please set a standard event");
177+
}
178+
179+
if (metaData) {
180+
args.push(metaData);
181+
}
182+
183+
return execute("sendBranchEvent", args);
184+
};
185+
139186
Branch.prototype.createBranchUniversalObject = function createBranchUniversalObject(
140187
options
141188
) {

examples/cordova1/platforms/ios/Cordova1/Plugins/branch-cordova-sdk/BranchSDK.m

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,12 @@ -(void)sendBranchEvent:(CDVInvokedUrlCommand*)command
247247
event.currency = [metadata objectForKey:key];
248248
}
249249
else if ([key isEqualToString:@"shipping"]) {
250-
event.shipping = [metadata objectForKey:key];
250+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
251+
event.shipping = [NSDecimalNumber decimalNumberWithString:value];
251252
}
252253
else if ([key isEqualToString:@"tax"]) {
253-
event.tax = [NSDecimalNumber decimalNumberWithString:[metadata objectForKey:key]];
254+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
255+
event.tax = [NSDecimalNumber decimalNumberWithString:value];
254256
}
255257
else if ([key isEqualToString:@"coupon"]) {
256258
event.coupon = [metadata objectForKey:key];
@@ -262,7 +264,8 @@ -(void)sendBranchEvent:(CDVInvokedUrlCommand*)command
262264
event.eventDescription = [metadata objectForKey:key];
263265
}
264266
else if ([key isEqualToString:@"revenue"]) {
265-
event.revenue = [NSDecimalNumber decimalNumberWithString:[metadata objectForKey:key]];
267+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
268+
event.revenue = [NSDecimalNumber decimalNumberWithString:value];
266269
}
267270
else if ([key isEqualToString:@"searchQuery"]) {
268271
event.searchQuery = [metadata objectForKey:key];

examples/cordova1/platforms/ios/www/plugins/branch-cordova-sdk/src/index.js

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
11
cordova.define("branch-cordova-sdk.Branch", function(require, exports, module) {
22
var exec = require("cordova/exec");
3-
var deviceVendor = window.clientInformation.vendor;
3+
var deviceVendor = (typeof window.clientInformation != 'undefined' && typeof window.clientInformation.vendor != 'undefined') ? window.clientInformation.vendor : "unknownVendor";
44
// SDK Class
55
var API_CLASS = "BranchSDK";
66

7+
const standardEvent = {
8+
STANDARD_EVENT_ADD_TO_CART: "ADD_TO_CART",
9+
STANDARD_EVENT_ADD_TO_WISHLIST: "ADD_TO_WISHLIST",
10+
STANDARD_EVENT_VIEW_CART: "VIEW_CART",
11+
STANDARD_EVENT_INITIATE_PURCHASE: "INITIATE_PURCHASE",
12+
STANDARD_EVENT_ADD_PAYMENT_INFO: "ADD_PAYMENT_INFO",
13+
STANDARD_EVENT_PURCHASE: "PURCHASE",
14+
STANDARD_EVENT_SPEND_CREDITS: "SPEND_CREDITS",
15+
STANDARD_EVENT_SEARCH: "SEARCH",
16+
STANDARD_EVENT_VIEW_ITEM: "VIEW_ITEM",
17+
STANDARD_EVENT_VIEW_ITEMS: "VIEW_ITEMS",
18+
STANDARD_EVENT_RATE: "RATE",
19+
STANDARD_EVENT_SHARE: "SHARE",
20+
STANDARD_EVENT_COMPLETE_REGISTRATION: "COMPLETE_REGISTRATION",
21+
STANDARD_EVENT_COMPLETE_TUTORIAL: "COMPLETE_TUTORIAL",
22+
STANDARD_EVENT_ACHIEVE_LEVEL: "ACHIEVE_LEVEL",
23+
STANDARD_EVENT_UNLOCK_ACHIEVEMENT: "UNLOCK_ACHIEVEMENT"
24+
}
25+
726
// Branch prototype
827
var Branch = function Branch() {
928
this.debugMode = false;
@@ -14,6 +33,12 @@ var Branch = function Branch() {
1433
function execute(method, params) {
1534
var output = !params ? [] : params;
1635

36+
if (method == "getStandardEvents") {
37+
return new Promise(function promise(resolve, reject) {
38+
resolve(standardEvent);
39+
});
40+
}
41+
1742
return new Promise(function promise(resolve, reject) {
1843
exec(
1944
function success(res) {
@@ -136,6 +161,28 @@ Branch.prototype.sendCommerceEvent = function sendCommerceEvent(
136161
return execute("sendCommerceEvent", args);
137162
};
138163

164+
165+
Branch.prototype.getStandardEvents = function getStandardEvents() {
166+
return execute("getStandardEvents");
167+
168+
};
169+
170+
Branch.prototype.sendBranchEvent = function sendBranchEvent(
171+
action,
172+
metaData
173+
) {
174+
var args = [action];
175+
if (!action) {
176+
return executeReject("Please set a standard event");
177+
}
178+
179+
if (metaData) {
180+
args.push(metaData);
181+
}
182+
183+
return execute("sendBranchEvent", args);
184+
};
185+
139186
Branch.prototype.createBranchUniversalObject = function createBranchUniversalObject(
140187
options
141188
) {

examples/cordova1/plugins/branch-cordova-sdk/src/ios/BranchSDK.m

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,12 @@ -(void)sendBranchEvent:(CDVInvokedUrlCommand*)command
247247
event.currency = [metadata objectForKey:key];
248248
}
249249
else if ([key isEqualToString:@"shipping"]) {
250-
event.shipping = [metadata objectForKey:key];
250+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
251+
event.shipping = [NSDecimalNumber decimalNumberWithString:value];
251252
}
252253
else if ([key isEqualToString:@"tax"]) {
253-
event.tax = [NSDecimalNumber decimalNumberWithString:[metadata objectForKey:key]];
254+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
255+
event.tax = [NSDecimalNumber decimalNumberWithString:value];
254256
}
255257
else if ([key isEqualToString:@"coupon"]) {
256258
event.coupon = [metadata objectForKey:key];
@@ -262,7 +264,8 @@ -(void)sendBranchEvent:(CDVInvokedUrlCommand*)command
262264
event.eventDescription = [metadata objectForKey:key];
263265
}
264266
else if ([key isEqualToString:@"revenue"]) {
265-
event.revenue = [NSDecimalNumber decimalNumberWithString:[metadata objectForKey:key]];
267+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
268+
event.revenue = [NSDecimalNumber decimalNumberWithString:value];
266269
}
267270
else if ([key isEqualToString:@"searchQuery"]) {
268271
event.searchQuery = [metadata objectForKey:key];

examples/ionic3/config.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version='1.0' encoding='utf-8'?>
22
<widget id="com.eneff.branch.ionic3" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
33
<branch-config>
4-
<branch-key value="key_live_gdyoTb1FlA8TQmJ6Ly05XamhxznRaZGf" />
4+
<branch-key value="key_test_hnCYNwKiRvxgl86FyL343hbcsEk9BtZ8" />
55
<uri-scheme value="branchionic3" />
6-
<link-domain value="4m4z.app.link" />
6+
<link-domain value="mp4z.app.link" />
77
<ios-team-release value="PW4Q8885U7" />
88
</branch-config>
99
<name>Ionic3</name>
@@ -87,6 +87,7 @@
8787
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
8888
<plugin name="cordova-plugin-ionic-webview" spec="1.1.19" />
8989
<plugin name="cordova-plugin-ionic-keyboard" spec="2.0.5" />
90+
<plugin name="branch-cordova-sdk" spec="^3.0.1" />
9091
<engine name="ios" spec="~4.5.4" />
9192
<engine name="android" spec="~7.0.0" />
9293
</widget>

examples/ionic3/src/pages/home/home.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ <h2>Welcome to Ionic!</h2>
1515
update any existing page or create new pages.
1616
</p>
1717
<button ion-button block (tap)='BranchShare();'>Share</button>
18+
<button ion-button block (tap)='BranchStandardEvent();'>LogStandardEvent</button>
19+
<button ion-button block (tap)='BranchCustomEvent();'>LogCustomEvent</button>
1820
</ion-content>

examples/ionic3/src/pages/home/home.ts

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { NavController } from "ionic-angular";
66
templateUrl: "home.html"
77
})
88
export class HomePage {
9-
constructor(public navCtrl: NavController) {}
9+
constructor(public navCtrl: NavController) { }
1010

1111
BranchShare() {
1212
const Branch = window["Branch"];
@@ -27,7 +27,7 @@ export class HomePage {
2727
}
2828
};
2929

30-
Branch.createBranchUniversalObject(buo).then(function(res) {
30+
Branch.createBranchUniversalObject(buo).then(function (res) {
3131
// optional fields
3232
var analytics = {
3333
channel: "facebook",
@@ -53,4 +53,53 @@ export class HomePage {
5353
res.showShareSheet(analytics, properties, message);
5454
});
5555
}
56+
57+
BranchStandardEvent() {
58+
59+
const Branch = window["Branch"];
60+
Branch.getStandardEvents().then(function success(res) {
61+
var event = res.STANDARD_EVENT_ADD_TO_CART;
62+
63+
var metadata = {
64+
transactionID: '12344555',
65+
currency: 'USD',
66+
revenue: 1.5,
67+
shipping: 10.2,
68+
tax: 12.3,
69+
coupon: 'test_coupon',
70+
affiliation: 'test_affiliation',
71+
description: 'Test add to cart event',
72+
searchQuery: 'test keyword',
73+
customData: {
74+
"Custom_Event_Property_Key1": "Custom_Event_Property_val1",
75+
"Custom_Event_Property_Key2": "Custom_Event_Property_val2"
76+
}
77+
};
78+
Branch.sendBranchEvent(event, metadata).then(function success(res) {
79+
alert("Branch Event success " + res);
80+
}).catch(function error(err) {
81+
alert("Branch Event " + err);
82+
});
83+
}).catch(function error(err) {
84+
alert("Get Standard Event " + err);
85+
});
86+
}
87+
88+
BranchCustomEvent() {
89+
const Branch = window["Branch"];
90+
var event = "Test Custom Event";
91+
92+
var customData = {
93+
customData: {
94+
"Custom_Event_Property_Key1": "Custom_Event_Property_val1",
95+
"Custom_Event_Property_Key2": "Custom_Event_Property_val2"
96+
}
97+
};
98+
99+
Branch.sendBranchEvent(event, customData).then(function success(res) {
100+
alert("Branch Event success " + res);
101+
}).catch(function error(err) {
102+
alert("Branch Event " + err);
103+
});
104+
}
56105
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "branch-cordova-sdk",
33
"description": "Branch Metrics Cordova SDK",
44
"main": "src/index.js",
5-
"version": "3.0.1",
5+
"version": "3.1.0",
66
"homepage": "https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking",
77
"repository": {
88
"type": "git",

0 commit comments

Comments
 (0)