插件
动态链接
@nativescript/firebase-dynamic-links
- 简介
- 设置 Firebase 和动态链接 SDK
- 使用 @nativescript/firebase-dynamic-links 创建和接收动态链接
- 接收动态链接
- API
- 许可证
简介
此插件允许您将 Firebase 动态链接 SDK 添加到您的应用中,创建动态链接并接收启动应用屏幕的链接。
设置 Firebase 和动态链接 SDK
要为您的 NativeScript 应用设置和初始化 Firebase,请遵循 @nativescript/firebase-core 插件文档中的说明。
安装并导入
@nativescript/firebase-dynamic-links
以添加动态链接 SDK。通过在项目根目录中运行以下命令来安装插件。
clinpm install @nativescript/firebase-dynamic-links
要添加动态链接 SDK,请导入
@nativescript/firebase-dynamic-links
插件。您应该在应用项目中导入一次插件,理想的位置是在应用引导文件(app.ts
、main.ts
等)中。
提示 为了获得最佳的动态链接体验,Firebase 动态链接文档建议您通过将 Firebase SDK for Google Analytics 添加到您的应用中来启用 Google Analytics。要将 Firebase SDK for Google Analytics 添加到您的 NativeScript 应用并使用它,请参阅 @nativescript/firebase-analytics 插件文档。
按照以下步骤添加动态链接的 URL 前缀
- 转到 Firebase 控制台
- 点击
动态链接
- 点击
开始使用
,并在随后显示的表单中输入您的 URL 前缀。
建议:指定深层链接和回退链接中允许的 URL 模式。有关更多信息,请参阅 允许特定 URL 模式。
iOS:确认您的 Firebase 项目已正确配置
有关确认您的 Firebase 项目是否已正确配置以对 iOS 使用动态链接的说明,请参阅 配置步骤 4。
使用 @nativescript/firebase-dynamic-links 创建和接收动态链接
从参数创建动态链接
您可以通过 Firebase 控制台、您的应用甚至您的自定义 API 创建动态链接。要使用插件从参数创建动态链接,请在 DynamicLinks 类 实例上调用 buildLink 方法,并向其传递参数的字面量对象或 createLink 或 createShortLink 方法返回的 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) => {})
创建动态链接的参数
如上文 从参数创建动态链接 部分所述,您可以使用 createLink
或 createShortLink
方法创建动态链接的参数。要创建动态链接的参数,请使用深层链接(点击动态链接时要打开的链接)和您的 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-filter
添加到位于 app/App_Resources/src/main
的应用的 AndroidManifest.xml
文件中,如下所示。
<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
类包装的 FIRDynamicLinks 的 iOS 实例。
android
dynamicLinks = firebase().dynamicLinks()
dynamicLinksAndroid = firebase().dynamicLinks().android
一个 只读
属性,返回由 DynamicLinks
类包装的 FirebaseDynamicLinks 的 Android 实例。
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
导航
dynamicLinkNavigationParameters: DynamicLinkNavigationParameters =
dynamicLinkParameters.navigation
获取或设置导航信息参数。
社交
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 类
分析
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
导航
dynamicLinkNavigationParameters: DynamicLinkNavigationParameters =
dynamicLinkParameters.navigation
获取或设置导航信息参数。
社交
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 许可证 2.0 版