MCPcopy Create free account
hub / github.com/NativeScript/firebase / DynamicLinks

Class DynamicLinks

packages/firebase-dynamic-links/index.ios.ts:457–543  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

455}
456
457export class DynamicLinks implements IDynamicLinks {
458 _native: FIRDynamicLinks;
459 _app: FirebaseApp;
460 static _onLink: OnLinkListener;
461 constructor() {
462 if (defaultDynamicLinks) {
463 return defaultDynamicLinks;
464 }
465 defaultDynamicLinks = this;
466 }
467
468 createLink(link: string, domainUriPrefix: string): DynamicLinkParameters {
469 return DynamicLinkParameters.fromNative(FIRDynamicLinkComponents.alloc().initWithLinkDomainURIPrefix(NSURL.URLWithString(link), domainUriPrefix));
470 }
471 createShortLink(link: string, domainUriPrefix: string, shortLinkType = ShortLinkType.DEFAULT): DynamicLinkParameters {
472 const nativeLink = FIRDynamicLinkComponents.alloc().initWithLinkDomainURIPrefix(NSURL.URLWithString(link), domainUriPrefix);
473 const options = FIRDynamicLinkComponentsOptions.options();
474 switch (shortLinkType) {
475 case ShortLinkType.SHORT:
476 options.pathLength = FIRShortDynamicLinkPathLength.Short;
477 break;
478 case ShortLinkType.UNGUESSABLE:
479 options.pathLength = FIRShortDynamicLinkPathLength.Unguessable;
480 break;
481 default:
482 options.pathLength = FIRShortDynamicLinkPathLength.Default;
483 break;
484 }
485 nativeLink.options = options;
486 return DynamicLinkParameters.fromNative(nativeLink);
487 }
488
489 buildLink(link: DynamicLinkParameters): Promise<string> {
490 if (link.native.options) {
491 // short link
492 return new Promise((resolve, reject) => {
493 link.native.shortenWithCompletion((url, warnings, error) => {
494 if (error) {
495 reject(FirebaseError.fromNative(error));
496 } else {
497 resolve(url.absoluteString);
498 }
499 });
500 });
501 } else {
502 // long link
503 return Promise.resolve(link.native.url.absoluteString);
504 }
505 }
506
507 onLink(listener: OnLinkListener) {
508 DynamicLinks._onLink = listener;
509 if (listener) {
510 TNSFirebaseDynamicLinksAppDelegate.onLinkCallback = (link, error) => {
511 listener(DynamicLink.fromNative(link), error && FirebaseError.fromNative(error));
512 };
513 } else {
514 TNSFirebaseDynamicLinksAppDelegate.onLinkCallback = null;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected