使用 Capacitor 在 Ionic / React.js 应用程序中实施 Firebase 动态链接

Implement Firebase Dynamic Links in Ionic / React.js application with Capacitor

我已经用 Firebase 作为后端开发了一个 React.js 应用程序,我们还使用 Ionic 将该应用程序部署到 android 和 IOS 构建。我们目前正在使用 Capacitor 添加一些本机功能,但我们在实现动态链接时遇到了问题。

那里有几个包,经过大量搜索后我找到了这个包:https://github.com/Turnoutt/capacitor-firebase-dynamic-links

这个包不适用于Capacitor 3.0的问题,有人很友好地提交了一个pull request,但是repo所有者还没有合并到修复中。有些人分叉回购来实施修复,我遇到了下面的回购。

一切顺利,但我不确定将侦听器放在哪里?我应该把它放在应用程序级别吗?如果是这样,将此代码片段分别放在 Android / IOS 的什么位置?

方法

// addListener('deepLinkOpen', (data: { url: string })
// Add this method when the app starts to listen for the dynamic link.

CapacitorFirebaseDynamicLinks.addListener('deepLinkOpen', (data: { url: string }) => {
      Implement your navigation handler
    })

CapacitorFirebaseDynamicLinks.addListener('deepLinkOpen', (数据: { url: 字符串 }) => { 实施您的导航处理程序 })

我在 Capacitor v2.4.2 上实现了动态链接,Angular。我使用了 Turnoutt 的第一个插件。 这与您的 Capacitor 版本不同,但这里是我的输入可能会有所帮助。

CapacitorFirebaseDynamicLinks.addListener 侦听器将放置在应用程序启动的 React 代码中,一旦平台准备就绪。我受限于我的反应知识,但是 this is 如何在离子反应中添加监听器。实现方式类似

对于 iOS 原生,必须参考 this link

执行单独的步骤

具体来说,在 AppDelegate.swift 中,这些是我所做的更改。

import Firebase

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    FirebaseApp.configure()
    return true
  }

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    // Called when the app was launched with a url. Feel free to add additional processing here,
    // but if you want the App API to support tracking app url opens, make sure to keep this call
    return CAPBridge.handleOpenUrl(url, options)
  }