- 版本:3.3.2
- GitHub: https://github.com/NativeScript/firebase
- NPM: https://npmjs.net.cn/package/%40nativescript%2Ffirebase-dynamic-links
- 下载
- 昨天:31
- 上周:191
- 上个月:890
@nativescript/firebase-dynamic-links
- 简介
- 设置 Firebase 和动态链接 SDK
- 使用 @nativescript/firebase-dynamic-links 创建和接收动态链接
- 接收动态链接
- API
- 许可证
简介
此插件允许您将 Firebase Dynamic Links SDK 添加到您的应用程序中,创建动态链接并接收启动您应用程序屏幕的链接。
设置 Firebase 和动态链接 SDK
-
要为您的 NativeScript 应用程序设置和初始化 Firebase,请按照 @nativescript/firebase-core 插件文档中的说明操作。
-
通过在项目根目录中运行以下命令来安装和导入
@nativescript/firebase-dynamic-links
以添加动态链接 SDK。-
安装插件:
npm install @nativescript/firebase-dynamic-links
-
要添加动态链接 SDK,导入
@nativescript/firebase-dynamic-links
插件。您应该在应用程序项目中仅导入一次插件,理想的位置是应用程序启动文件(例如app.ts
、main.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方法,传入参数的文本对象或由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 过滤器
要接收一个深链接到您的应用的动态链接,请将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