UNPKG

@nativescript/firebase-dynamic-links

Version:

NativeScript Firebase - Dynamic Links

448 lines 14.1 kB
import { Application, AndroidApplication } from '@nativescript/core'; import { deserialize, firebase, FirebaseApp, FirebaseError } from '@nativescript/firebase-core'; import { ShortLinkType } from './common'; let defaultDynamicLinks; const fb = firebase(); Object.defineProperty(fb, 'dynamicLinks', { value: () => { if (!defaultDynamicLinks) { defaultDynamicLinks = new DynamicLinks(); } return defaultDynamicLinks; }, writable: false, }); export { ShortLinkType } from './common'; export class DynamicLinkAnalyticsParameters { constructor() { this._builder = new com.google.firebase.dynamiclinks.DynamicLink.GoogleAnalyticsParameters.Builder(); } static fromNative(link) { if (link instanceof com.google.firebase.dynamiclinks.DynamicLink.GoogleAnalyticsParameters) { const result = new DynamicLinkAnalyticsParameters(); result._native = link; return result; } return null; } get campaign() { return this._builder.getCampaign(); } set campaign(value) { this._builder.setCampaign(value); } get content() { return this._builder.getContent(); } set content(value) { this._builder.setContent(value); } get medium() { return this._builder.getMedium(); } set medium(value) { this._builder.setMedium(value); } get source() { return this._builder.getSource(); } set source(value) { this._builder.setSource(value); } get term() { return this._builder.getTerm(); } set term(value) { this._builder.setTerm(value); } get native() { if (!this._native) { return this._builder.build(); } return this._native; } get android() { return this.native; } } export class DynamicLinkAndroidParameters { constructor(packageName) { const name = packageName || (Application.android.foregroundActivity || Application.android.startActivity).getPackageName?.(); this._packageName = name; this._builder = new com.google.firebase.dynamiclinks.DynamicLink.AndroidParameters.Builder(name); } static fromNative(link) { if (link instanceof com.google.firebase.dynamiclinks.DynamicLink.AndroidParameters) { const result = new DynamicLinkAndroidParameters(); result._native = link; return result; } return null; } get fallbackUrl() { return this._builder.getFallbackUrl().toString(); } set fallbackUrl(value) { try { this._builder.setFallbackUrl(android.net.Uri.parse(value)); } catch (error) { } } get minimumVersion() { return this._builder.getMinimumVersion(); } set minimumVersion(value) { this._builder.setMinimumVersion(value); } get packageName() { return this._packageName; } get native() { if (!this._native) { return this._builder.build(); } return this._native; } get android() { return this.native; } } export class DynamicLinkIOSParameters { constructor(bundleId) { this._bundleId = bundleId; this._builder = new com.google.firebase.dynamiclinks.DynamicLink.IosParameters.Builder(bundleId); } static fromNative(link) { if (link instanceof com.google.firebase.dynamiclinks.DynamicLink.IosParameters) { const result = new DynamicLinkIOSParameters(); result._native = link; return result; } return null; } get appStoreId() { return this._builder?.getAppStoreId?.(); } set appStoreId(value) { this._builder?.setAppStoreId?.(value); } get bundleId() { return this._bundleId; } get customScheme() { return this._builder?.getCustomScheme?.(); } set customScheme(value) { this._builder?.setCustomScheme?.(value); } get fallbackUrl() { return this._fallbackUrl; } set fallbackUrl(value) { try { this._builder?.setFallbackUrl?.(android.net.Uri.parse(value)); this._fallbackUrl = value; } catch (error) { } } get iPadBundleId() { return this._builder?.getIpadBundleId?.(); } set iPadBundleId(value) { this._builder?.setIpadBundleId?.(value); } get iPadFallbackUrl() { return this._builder?.getIpadFallbackUrl?.().toString?.(); } set iPadFallbackUrl(value) { try { this._builder?.setIpadFallbackUrl?.(android.net.Uri.parse(value)); } catch (error) { } } get minimumVersion() { return this._builder?.getMinimumVersion(); } get native() { if (!this._native) { return this._builder.build(); } return this._native; } get android() { return this.native; } } export class DynamicLinkITunesParameters { constructor() { this._builder = new com.google.firebase.dynamiclinks.DynamicLink.ItunesConnectAnalyticsParameters.Builder(); } static fromNative(link) { if (link instanceof com.google.firebase.dynamiclinks.DynamicLink.ItunesConnectAnalyticsParameters) { const result = new DynamicLinkITunesParameters(); result._native = link; return result; } return null; } get affiliateToken() { return this._builder?.getAffiliateToken?.(); } set affiliateToken(value) { this._builder?.setAffiliateToken?.(value); } get campaignToken() { return this._builder?.getCampaignToken?.(); } set campaignToken(value) { this._builder?.setCampaignToken?.(value); } get providerToken() { return this._builder?.getProviderToken?.(); } set providerToken(value) { this._builder.setProviderToken?.(value); } get native() { if (!this._native) { return this._builder.build(); } return this._native; } get android() { return this.native; } } export class DynamicLinkNavigationParameters { constructor() { this._builder = new com.google.firebase.dynamiclinks.DynamicLink.NavigationInfoParameters.Builder(); } static fromNative(link) { if (link instanceof com.google.firebase.dynamiclinks.DynamicLink.NavigationInfoParameters) { const result = new DynamicLinkNavigationParameters(); result._native = link; return result; } return null; } get forcedRedirectEnabled() { return this._builder?.getForcedRedirectEnabled?.(); } set forcedRedirectEnabled(value) { this._builder?.setForcedRedirectEnabled?.(value); } get native() { if (!this._native) { return this._builder.build(); } return this._native; } get android() { return this.native; } } export class DynamicLinkSocialParameters { constructor() { this._builder = new com.google.firebase.dynamiclinks.DynamicLink.SocialMetaTagParameters.Builder(); } static fromNative(link) { if (link instanceof com.google.firebase.dynamiclinks.DynamicLink.SocialMetaTagParameters) { const result = new DynamicLinkSocialParameters(); result._native = link; return result; } return null; } get descriptionText() { return this._builder?.getDescription?.(); } set descriptionText(value) { this._builder?.setDescription?.(value); } get imageUrl() { return this._builder?.getImageUrl?.()?.toString?.(); } set imageUrl(value) { try { this._builder?.setImageUrl?.(android.net.Uri.parse(value)); } catch (error) { } } get title() { return this._builder?.getTitle?.(); } set title(value) { this._builder?.setTitle(value); } get native() { if (!this._native) { return this._builder.build(); } return this._native; } get android() { return this.native; } } export class DynamicLinkParameters { static fromNative(link, shortLinkType = undefined) { if (link instanceof com.google.firebase.dynamiclinks.DynamicLink.Builder) { const result = new DynamicLinkParameters(); result._native = link; result._shortLinkType = shortLinkType; return result; } return null; } get native() { return this._native; } _build() { if (this.analytics) { this.native.setGoogleAnalyticsParameters(this.analytics.native); } if (this.android) { this.native.setAndroidParameters(this.android.native); } if (this.ios) { this.native.setIosParameters(this.ios.native); } if (this.itunes) { this.native.setItunesConnectAnalyticsParameters(this.itunes.native); } if (this.navigation) { this.native.setNavigationInfoParameters(this.navigation.native); } if (this.social) { this.native.setSocialMetaTagParameters(this.social.native); } return this.native; } } export class DynamicLink { static fromNative(link) { if (link instanceof com.google.firebase.dynamiclinks.PendingDynamicLinkData) { const result = new DynamicLink(); result._native = link; return result; } return null; } get minimumAppVersion() { return String(this.native.getMinimumAppVersion()); } get url() { return this.native?.getLink?.()?.toString?.(); } get utmParameters() { return deserialize(this.native.getUtmParameters()); } get native() { return this._native; } get android() { return this.native; } toJSON() { return { minimumAppVersion: this.minimumAppVersion, url: this.url, utmParameters: this.utmParameters, }; } } export class DynamicLinks { constructor() { if (defaultDynamicLinks) { return defaultDynamicLinks; } defaultDynamicLinks = this; if (!DynamicLinks._didInit) { DynamicLinks._callback = new org.nativescript.firebase.dynamic_links.FirebaseDynamicLinks.Callback({ onSuccess(param0) { if (typeof DynamicLinks._onLink === 'function') { DynamicLinks._onLink(DynamicLink.fromNative(param0), null); } }, onError(param0) { if (typeof DynamicLinks._onLink === 'function') { DynamicLinks._onLink(null, FirebaseError.fromNative(param0)); } console.error('Unknown error occurred when attempting to handle a universal link', param0); }, }); Application.android.on(AndroidApplication.activityNewIntentEvent, (data) => { org.nativescript.firebase.dynamic_links.FirebaseDynamicLinks.onNewIntent(com.google.firebase.dynamiclinks.FirebaseDynamicLinks.getInstance(), data.intent, DynamicLinks._callback); }); DynamicLinks._didInit = true; } } buildLink(link) { return new Promise((resolve, reject) => { if (link._shortLinkType) { org.nativescript.firebase.dynamic_links.FirebaseDynamicLinks.buildShortLink(link._build(), new org.nativescript.firebase.dynamic_links.FirebaseDynamicLinks.Callback({ onSuccess(param0) { resolve(param0.getShortLink().toString()); }, onError(param0) { reject(FirebaseError.fromNative(param0)); }, })); } else { resolve(link._build().buildDynamicLink().getUri().toString()); } }); } createLink(link, domainUriPrefix) { const dl = this.native.createDynamicLink(); try { dl.setLink(android.net.Uri.parse(link)); } catch (error) { } dl.setDomainUriPrefix(domainUriPrefix); return DynamicLinkParameters.fromNative(dl); } createShortLink(link, domainUriPrefix, shortLinkType = ShortLinkType.DEFAULT) { const dl = this.native.createDynamicLink(); try { dl.setLink(android.net.Uri.parse(link)); } catch (error) { } dl.setDomainUriPrefix(domainUriPrefix); return DynamicLinkParameters.fromNative(dl, shortLinkType); } onLink(listener) { DynamicLinks._onLink = listener; } resolveLink(link) { return new Promise((resolve, reject) => { org.nativescript.firebase.dynamic_links.FirebaseDynamicLinks.resolveLink(this.native, link, new org.nativescript.firebase.dynamic_links.FirebaseDynamicLinks.Callback({ onSuccess(param0) { resolve(DynamicLink.fromNative(param0)); }, onError(param0) { reject(FirebaseError.fromNative(param0)); }, })); }); } get native() { if (!this._native) { this._native = com.google.firebase.dynamiclinks.FirebaseDynamicLinks.getInstance(); } return this._native; } get android() { return this.native; } get app() { if (!this._app) { // @ts-ignore this._app = FirebaseApp.fromNative(com.google.firebase.FirebaseApp.getInstance()); } return this._app; } } DynamicLinks._didInit = false; //# sourceMappingURL=index.android.js.map