@nativescript/firebase-dynamic-links
NativeScript Firebase - 动态链接
npm i --save @nativescript/firebase-dynamic-links

@nativescript/firebase-dynamic-links

简介

此插件允许您将 Firebase Dynamic Links SDK 添加到您的应用程序中,创建动态链接并接收启动您应用程序屏幕的链接。

image

设置 Firebase 和动态链接 SDK

  • 要为您的 NativeScript 应用程序设置和初始化 Firebase,请按照 @nativescript/firebase-core 插件文档中的说明操作。

  • 通过在项目根目录中运行以下命令来安装和导入 @nativescript/firebase-dynamic-links 以添加动态链接 SDK。

    1. 安装插件:

      npm install @nativescript/firebase-dynamic-links
    2. 要添加动态链接 SDK,导入 @nativescript/firebase-dynamic-links 插件。您应该在应用程序项目中仅导入一次插件,理想的位置是应用程序启动文件(例如 app.tsmain.ts 等)。

提示 要获得最佳的动态链接体验,Firebase Dynamic Links 文档建议您通过将 Firebase Google Analytics SDK 添加到您的应用程序中启用 Google Analytics。有关在 NativeScript 应用程序中添加和使用 Firebase Google Analytics SDK 的说明,请参阅 @nativescript/firebase-analytics 插件文档。

  • 按照以下步骤为您的动态链接添加 URL 前缀

    • 前往 Firebase 控制台
    • 点击 动态链接
    • 点击 开始使用 并在随后的表单中输入您的 URL 前缀。
  • 推荐:指定您的深链接和回退链接中允许的 URL 模式。有关更多信息,请参阅 允许特定 URL 模式

iOS:确认您的 Firebase 项目配置正确

有关确认您的 Firebase 项目是否已正确配置以使用动态链接的 iOS 的说明,请参阅 配置步骤 4

使用 @nativescript/firebase-dynamic-links 创建和接收动态链接

从参数创建动态链接

您可以通过Firebase控制台、您的应用甚至自定义API创建动态链接。要使用插件从参数创建动态链接,请在DynamicLinks类实例上调用buildLink方法,传入参数的文本对象或由createLinkcreateShortLink方法返回的DynamiclinkParameters实例。

ShortLinkType

enum ShortLinkType {
DEFAULT = 'default',
SHORT = 'short',
UNGUESSABLE = 'unguessable',
}

buildLink()

dynamicLinks = firebase().dynamicLinks()

link: string = dynamicLinks.buildLink(linkParameters)

从参数构建动态链接并返回作为string的链接。使用返回的链接将用户引导到您希望的内容。

参数 类型 描述
linkParameters DynamicLinkParameters 创建动态链接时使用的动态链接参数。

onLink()

dynamicLinks: DynamicLinks = firebase().dynamicLinks()
listener = (link: DynamicLink | null, error: FirebaseError | null) => {
// handle the link event
}
dynamicLinks.onLink(listener)

允许您添加一个回调函数,当您的应用屏幕通过动态链接启动时会被调用。

参数 类型 描述
listener OnLinkListener 当应用屏幕由动态链接启动时将被调用的函数。
OnLinkListener类型
type OnLinkListener = (link: DynamicLink | null, error: FirebaseError | null) => void;

resolveLink()

dynamicLinks: DynamicLinks = firebase().dynamicLinks()

dynamicLinks.resolveLink(link).then((dynamicLink: DynamicLink)=>{

})

创建动态链接的参数

如上文中从参数创建动态链接部分所述,您可以使用createLinkcreateShortLink方法创建动态链接的参数。要创建动态链接的参数,分别使用深链接(动态链接点击时打开的链接)和您的URL前缀作为第一个和第二个参数调用任一方法。

const dynamicLinks = firebase().dynamicLinks()

const link = dynamicLinks.createShortLink('https://docs.nativescript.cn', 'https://triniwiz.page.link');

link.social = new DynamicLinkSocialParameters();
link.social.imageUrl = 'https://art.nativescript.org/logo/export/NativeScript_Logo_White_Blue_Rounded.png';

let dynamiLink = await dynamicLinks.buildLink(link)

接收动态链接

Android:添加深链接的 intent 过滤器

要接收一个深链接到您的应用的动态链接,请将intent-filter添加到您的应用AndroidManifest.xml文件中,该文件位于app/App_Resources/src/main

<activity ...>
....
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="YOUR_SCHEME" />
</intent-filter>
</activity>

添加回调函数以接收链接

要接收启动您应用屏幕的深链接,请在DynamicLinks类的实例上调用onLink方法,并传入一个包含链接的通知函数。

const dynamicLinks = firebase().dynamicLinks();

dynamicLinks.onLink((link: DynamicLink) => {
console.log('onLink', link);
});

API

DynamicLinks 类

ios

dynamicLinks = firebase().dynamicLinks()
dynamicLinksIOS: FIRDynamicLinks = firebase().dynamicLinks().ios

一个只读属性,返回由DynamicLinks类包装的iOS实例FIRDynamicLinks


android

dynamicLinks = firebase().dynamicLinks()
dynamicLinksAndroid = firebase().dynamicLinks().android

一个只读属性,返回由DynamicLinks类包装的Android实例FirebaseDynamicLinks


app

dynamicLinks = firebase().dynamicLinks()
dynamicLinksApp: FirebaseApp = firebase().dynamicLinks().app

一个只读属性,返回FirebaseApp实例。


createLink()

dynamicLinks = firebase().dynamicLinks()

dynamicLinkParameters: DynamicLinkParameters = dynamicLinks.createLink(link, domainUri)

创建动态链接的参数并返回一个DynamicLinkParameters对象,以便将其传递给创建动态链接的方法。

参数 类型 描述
link string 当动态链接被点击时,应用将打开的链接。有关更多信息,请参阅动态链接参数的描述。
domainUriPrefix string 在Firebase控制台动态链接下注册的您的域名前缀。

createShortLink()

dynamicLinks = firebase().dynamicLinks()

dynamicLinkParameters: DynamicLinkParameters = dynamicLinks.createShortLink(link, domainUri, shortLinkType)

创建动态链接的参数并返回一个DynamicLinkParameters对象,以便将其传递给创建动态链接的方法。

参数 类型 描述
link string 当动态链接被点击时,应用将打开的链接。有关更多信息,请参阅动态链接参数的描述。
domainUriPrefix string 在Firebase控制台动态链接下注册的您的域名前缀。
shortLinkType ShortLinkType 可选

ShortLinkType

enum ShortLinkType {
DEFAULT = 'default',
SHORT = 'short',
UNGUESSABLE = 'unguessable',
}

buildLink()

dynamicLinks = firebase().dynamicLinks()

link: string = dynamicLinks.buildLink(linkParameters)

从参数构建动态链接并返回作为string的链接。使用返回的链接将用户引导到您希望的内容。

参数 类型 描述
linkParameters DynamicLinkParameters 创建动态链接时使用的动态链接参数。

onLink()

dynamicLinks: DynamicLinks = firebase().dynamicLinks()
listener = (link: DynamicLink | null, error: FirebaseError | null) => {
// handle the link event
}
dynamicLinks.onLink(listener)

允许您添加一个回调函数,当您的应用屏幕通过动态链接启动时会被调用。

参数 类型 描述
listener OnLinkListener 当应用屏幕由动态链接启动时将被调用的函数。
OnLinkListener类型
type OnLinkListener = (link: DynamicLink | null, error: FirebaseError | null) => void;

resolveLink()

dynamicLinks: DynamicLinks = firebase().dynamicLinks()

dynamicLinks.resolveLink(link).then((dynamicLink: DynamicLink)=>{

})

解析传入的字符串,如果有效则返回它作为DynamicLink,否则返回错误。

参数 类型 描述
link string 要解析的字符串。

DynamicLinkAnalyticsParameters 类

用于为动态链接创建分析参数。

ios

ios = dynamicLinkAnalyticsParameters.ios

--

android

android = dynamicLinkAnalyticsParameters.android

campaign

campaign: undefined | string = dynamicLinkAnalyticsParameters.campign

content

content: undefined | string = dynamicLinkAnalyticsParameters.content
// or

source

source: undefined | string = dynamicLinkAnalyticsParameters.source

term

term: undefined | string = dynamicLinkAnalyticsParameters.term

DynamicLinkParameters 类

analytics

dynamicAnalytics: DynamicLinkAnalyticsParameters = dynamicLinkParameters.analytics

android

dynamicLinkParametersAndroid: DynamicLinkAnalyticsParameters = dynamicLinkParameters.android

ios

dynamicLinkParametersIOS: DynamicLinkAnalyticsParameters = dynamicLinkParameters.ios

domainUriPrefix

dynamicDomainUriPrefix: string = dynamicLinkParameters.domainUriPrefix

动态链接的URL前缀。


itunes

dynamicLinkITunesParameters: DynamicLinkITunesParameters = dynamicLinkParameters.itunes

navigation

dynamicLinkNavigationParameters: DynamicLinkNavigationParameters = dynamicLinkParameters.navigation

获取或设置导航信息参数。


social

dynamicLinkSocialParameters: DynamicLinkSocialParameters = dynamicLinkParameters.social

DynamicLink 对象

此对象代表您的应用接收到的链接数据。

ios

linkIOS: FIRDynamicLink = link.ios

android

linkAndroid: com.google.firebase.dynamiclinks.PendingDynamicLinkData  = link.android

minimumAppVersion

minimumAppVersion: string = link.minimumAppVersion

有关此属性的描述,请参阅PendingDynamicLinkData类文档中的getMinimumAppVersion()的描述。


url

url: string = link.url

有关此属性的描述,请参阅PendingDynamicLinkData类文档中的getUrl()的描述。


utmParameters

utmParameters: Record<string, string> = link.utmParameters

有关此属性的描述,请参阅PendingDynamicLinkData类文档中的getUtmParameters()的描述。

解析传入的字符串,如果有效则返回它作为DynamicLink,否则返回错误。

参数 类型 描述
link string 要解析的字符串。

DynamicLinkAnalyticsParameters 类

用于为动态链接创建分析参数。

ios

ios = dynamicLinkAnalyticsParameters.ios

--

android

android = dynamicLinkAnalyticsParameters.android

campaign

campaign: undefined | string = dynamicLinkAnalyticsParameters.campign

content

content: undefined | string = dynamicLinkAnalyticsParameters.content
// or

source

source: undefined | string = dynamicLinkAnalyticsParameters.source

term

term: undefined | string = dynamicLinkAnalyticsParameters.term

DynamicLinkParameters 类

analytics

dynamicAnalytics: DynamicLinkAnalyticsParameters = dynamicLinkParameters.analytics

android

dynamicLinkParametersAndroid: DynamicLinkAnalyticsParameters = dynamicLinkParameters.android

ios

dynamicLinkParametersIOS: DynamicLinkAnalyticsParameters = dynamicLinkParameters.ios

domainUriPrefix

dynamicDomainUriPrefix: string = dynamicLinkParameters.domainUriPrefix

动态链接的URL前缀。


itunes

dynamicLinkITunesParameters: DynamicLinkITunesParameters = dynamicLinkParameters.itunes

navigation

dynamicLinkNavigationParameters: DynamicLinkNavigationParameters = dynamicLinkParameters.navigation

获取或设置导航信息参数。


social

dynamicLinkSocialParameters: DynamicLinkSocialParameters = dynamicLinkParameters.social

DynamicLink 对象

此对象代表您的应用接收到的链接数据。

ios

linkIOS: FIRDynamicLink = link.ios

android

linkAndroid: com.google.firebase.dynamiclinks.PendingDynamicLinkData  = link.android

minimumAppVersion

minimumAppVersion: string = link.minimumAppVersion

有关此属性的描述,请参阅PendingDynamicLinkData类文档中的getMinimumAppVersion()的描述。


url

url: string = link.url

有关此属性的描述,请参阅PendingDynamicLinkData类文档中的getUrl()的描述。


utmParameters

utmParameters: Record<string, string> = link.utmParameters

有关此属性的描述,请参阅PendingDynamicLinkData类文档中的getUtmParameters()的描述。

许可证

Apache License Version 2.0