Skip to content

Commit df5a444

Browse files
authored
Merge branch 'master' into cocoa-gradle
2 parents 4484a8c + 22bc772 commit df5a444

Some content is hidden

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

56 files changed

+1134
-256
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/config.xml

Lines changed: 2 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.cordovatestbed" version="1.0.0" 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_ndqptlgXNE4LHqIahH1WIpbiyFlb62J3" />
4+
<branch-key value="key_test_amD23OLJP6x2xTgoOMnyypfdCtfYaudl" />
55
<uri-scheme value="branchcordova" />
6-
<link-domain value="cordova.app.link" />
6+
<link-domain value="i2f8.test-app.link" />
77
<ios-team-release value="PW4Q8885U7" />
88
</branch-config>
99
<preference name="android-minSdkVersion" value="16" />

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/android/app/src/main/java/io/branch/BranchSDK.java

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import io.branch.referral.BranchError;
2424
import io.branch.referral.BranchViewHandler;
2525
import io.branch.referral.SharingHelper;
26+
import io.branch.referral.util.BRANCH_STANDARD_EVENT;
27+
import io.branch.referral.util.BranchEvent;
2628
import io.branch.referral.util.CommerceEvent;
2729
import io.branch.referral.util.CurrencyType;
2830
import io.branch.referral.util.Product;
@@ -139,6 +141,13 @@ public boolean execute(String action, JSONArray args, CallbackContext callbackCo
139141
}
140142
cordova.getActivity().runOnUiThread(r);
141143
return true;
144+
} else if (action.equals("sendBranchEvent")) {
145+
if (args.length() < 1 && args.length() > 2) {
146+
callbackContext.error(String.format("Parameter mismatched. 1-2 is required but %d is given", args.length()));
147+
return false;
148+
}
149+
cordova.getActivity().runOnUiThread(r);
150+
return true;
142151
} else if (action.equals("getFirstReferringParams")) {
143152
cordova.getActivity().runOnUiThread(r);
144153
return true;
@@ -745,6 +754,59 @@ private void sendCommerceEvent(JSONObject action, JSONObject metaData, CallbackC
745754

746755
}
747756

757+
public void sendBranchEvent(String eventName, JSONObject metaData, CallbackContext callbackContext) throws JSONException {
758+
759+
BranchEvent event;
760+
try {
761+
BRANCH_STANDARD_EVENT standardEvent = BRANCH_STANDARD_EVENT.valueOf(eventName);
762+
event = new BranchEvent(standardEvent);
763+
} catch(IllegalArgumentException e) {
764+
event = new BranchEvent(eventName);
765+
}
766+
767+
Iterator < String > keys = metaData.keys();
768+
while (keys.hasNext()) {
769+
String key = keys.next();
770+
if (key.equals("revenue")) {
771+
event.setRevenue(Double.parseDouble(metaData.getString("revenue")));
772+
} else if (key.equals("currency")) {
773+
String currencyString = metaData.getString("currency");
774+
CurrencyType currency = CurrencyType.getValue(currencyString);
775+
if (currency != null) {
776+
event.setCurrency(currency);
777+
}
778+
else {
779+
Log.d(LCAT, "Invalid currency " + currencyString);
780+
}
781+
} else if (key.equals("transactionID")) {
782+
event.setTransactionID(metaData.getString("transactionID"));
783+
} else if (key.equals("coupon")) {
784+
event.setCoupon(metaData.getString("coupon"));
785+
} else if (key.equals("shipping")) {
786+
event.setShipping(Double.parseDouble(metaData.getString("shipping")));
787+
} else if (key.equals("tax")) {
788+
event.setTax(Double.parseDouble(metaData.getString("tax")));
789+
} else if (key.equals("affiliation")) {
790+
event.setAffiliation(metaData.getString("affiliation"));
791+
} else if (key.equals("description")) {
792+
event.setDescription(metaData.getString("description"));
793+
} else if (key.equals("searchQuery")) {
794+
event.setSearchQuery(metaData.getString("searchQuery"));
795+
} else if (key.equals("customData")) {
796+
JSONObject customData = metaData.getJSONObject("customData");
797+
keys = customData.keys();
798+
799+
while (keys.hasNext()) {
800+
String keyValue = (String) keys.next();
801+
event.addCustomDataProperty(keyValue, customData.getString(keyValue));
802+
}
803+
}
804+
805+
}
806+
event.logEvent(this.activity);
807+
//callbackContext.success();
808+
}
809+
748810
/**
749811
* <p>Gets the credit history of the specified bucket and triggers a callback to handle the
750812
* response.</p>
@@ -1272,6 +1334,8 @@ public void run() {
12721334
}
12731335
} else if (this.action.equals("sendCommerceEvent")) {
12741336
sendCommerceEvent(this.args.getJSONObject(0), this.args.getJSONObject(1), this.callbackContext);
1337+
} else if (this.action.equals("sendBranchEvent")) {
1338+
sendBranchEvent(this.args.getString(0), this.args.getJSONObject(1), this.callbackContext);
12751339
} else if (this.action.equals("getFirstReferringParams")) {
12761340
getFirstReferringParams(this.callbackContext);
12771341
} else if (this.action.equals("getLatestReferringParams")) {

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

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,55 @@ - (void)userCompletedAction:(CDVInvokedUrlCommand*)command
231231
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
232232
}
233233

234+
-(void)sendBranchEvent:(CDVInvokedUrlCommand*)command
235+
{
236+
NSString *eventName = [command.arguments objectAtIndex:0];
237+
NSDictionary *metadata;
238+
if ([command.arguments count] == 2) {
239+
metadata = [command.arguments objectAtIndex:1];
240+
}
241+
BranchEvent *event = [BranchEvent customEventWithName:eventName];
242+
for (id key in metadata) {
243+
if ([key isEqualToString:@"transactionID"]) {
244+
event.transactionID = [metadata objectForKey:key];
245+
}
246+
else if ([key isEqualToString:@"currency"]) {
247+
event.currency = [metadata objectForKey:key];
248+
}
249+
else if ([key isEqualToString:@"shipping"]) {
250+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
251+
event.shipping = [NSDecimalNumber decimalNumberWithString:value];
252+
}
253+
else if ([key isEqualToString:@"tax"]) {
254+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
255+
event.tax = [NSDecimalNumber decimalNumberWithString:value];
256+
}
257+
else if ([key isEqualToString:@"coupon"]) {
258+
event.coupon = [metadata objectForKey:key];
259+
}
260+
else if ([key isEqualToString:@"affiliation"]) {
261+
event.affiliation = [metadata objectForKey:key];
262+
}
263+
else if ([key isEqualToString:@"eventDescription"]) {
264+
event.eventDescription = [metadata objectForKey:key];
265+
}
266+
else if ([key isEqualToString:@"revenue"]) {
267+
NSString *value = ([[metadata objectForKey:key] isKindOfClass:[NSString class]]) ? [metadata objectForKey:key] : [[metadata objectForKey:key] stringValue];
268+
event.revenue = [NSDecimalNumber decimalNumberWithString:value];
269+
}
270+
else if ([key isEqualToString:@"searchQuery"]) {
271+
event.searchQuery = [metadata objectForKey:key];
272+
}
273+
else if ([key isEqualToString:@"description"]) {
274+
event.eventDescription = [metadata objectForKey:key];
275+
}
276+
else if ([key isEqualToString:@"customData"] && [[metadata objectForKey:key] isKindOfClass:[NSMutableDictionary class]]) {
277+
event.customData = [metadata objectForKey:key];
278+
}
279+
}
280+
[event logEvent];
281+
}
282+
234283
- (void)sendCommerceEvent:(CDVInvokedUrlCommand*)command
235284
{
236285
NSDictionary *data = [command.arguments objectAtIndex:0];

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
) {

0 commit comments

Comments
 (0)