diff --git a/android/src/main/java/co/boundstate/BranchDeepLinks.java b/android/src/main/java/co/boundstate/BranchDeepLinks.java index 3161beb..41f9dfb 100644 --- a/android/src/main/java/co/boundstate/BranchDeepLinks.java +++ b/android/src/main/java/co/boundstate/BranchDeepLinks.java @@ -106,7 +106,7 @@ private void sendError(String error) { public void handleUrl(PluginCall call) { // https://help.branch.io/developers-hub/docs/android-advanced-features#section-handle-links-in-your-own-app - String branchUrl = call.getString("url"); + String branchUrl = call.getString("branch"); if (branchUrl != null && !branchUrl.equals("")) { Intent intent = new Intent(getActivity(), getActivity().getClass()); diff --git a/ios/Plugin/BranchService.swift b/ios/Plugin/BranchService.swift index d84e9f9..425712d 100644 --- a/ios/Plugin/BranchService.swift +++ b/ios/Plugin/BranchService.swift @@ -61,4 +61,13 @@ class BranchService { func setDMAParamsForEEA(eeaRegion: Bool, adPersonalizationConsent: Bool, adUserDataUsageConsent: Bool) -> Void { Branch.setDMAParamsForEEA(eeaRegion, adPersonalizationConsent: adPersonalizationConsent, adUserDataUsageConsent: adUserDataUsageConsent) } + + func handleUrl(url: String, completion: @escaping (Error?) -> Void) { + if let deepLinkUrl = URL(string: url) { + Branch.getInstance().handleDeepLink(deepLinkUrl) + completion(nil) + } else { + completion(NSError(domain: "Invalid URL", code: 400, userInfo: nil)) + } + } } diff --git a/ios/Plugin/Plugin.m b/ios/Plugin/Plugin.m index da6d55d..f189d4d 100644 --- a/ios/Plugin/Plugin.m +++ b/ios/Plugin/Plugin.m @@ -16,4 +16,5 @@ CAP_PLUGIN_METHOD(getLatestReferringParams, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(getFirstReferringParams, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(setDMAParamsForEEA, CAPPluginReturnPromise); + CAP_PLUGIN_METHOD(handleUrl, CAPPluginReturnPromise); ) diff --git a/ios/Plugin/Plugin.swift b/ios/Plugin/Plugin.swift index b9f99b3..9128b4d 100644 --- a/ios/Plugin/Plugin.swift +++ b/ios/Plugin/Plugin.swift @@ -340,4 +340,19 @@ public class BranchDeepLinks: CAPPlugin { branchService.setDMAParamsForEEA(eeaRegion: eeaRegion, adPersonalizationConsent: adPersonalizationConsent, adUserDataUsageConsent: adUserDataUsageConsent) call.resolve() } + + @objc func handleUrl(_ call: CAPPluginCall) { + guard let url = call.getString("branch") else { + call.reject("The object passed must contain a 'branch' key with a string value") + return + } + + branchService.handleUrl(url: url) { error in + if let error = error { + call.reject(error.localizedDescription) + } else { + call.resolve() + } + } + } } diff --git a/src/definitions.ts b/src/definitions.ts index 88ed036..83d8243 100644 --- a/src/definitions.ts +++ b/src/definitions.ts @@ -11,7 +11,7 @@ export interface BranchReferringParamsResponse { } export interface BranchUrlParams { - url: string; + branch: string; } export interface BranchShortUrlAnalytics {