如何将 Firebase 动态链接转移到新安装的应用程序?

Posted

技术标签:

【中文标题】如何将 Firebase 动态链接转移到新安装的应用程序?【英文标题】:How to transfer a firebase dynamic link to a newly installed application? 【发布时间】:2017-08-02 12:33:03 【问题描述】:

我所说的一切都与 ios 9 及更高版本有关。 Firebase 文档说:

当用户打开您的一个动态链接时,如果您的应用还没有 已安装,用户被发送到 Play Store 或 App Store 进行安装 您的应用程序(除非您另有说明),然后您的应用程序就会打开。你可以 然后检索传递给您的应用程序的链接并处理该链接 适合您的应用。

我成功通过 FB-link 安装了我的应用程序,并通过链接打开了我安装的应用程序。但是当我尝试单步安装和打开时,应用程序在没有通过链接的情况下打开。也就是说,如果我的应用程序已经安装并且我单击链接,那么应用程序将打开并传递链接。但是如果没有安装应用程序并且我点击 FN-link 然后 iOS 打开 AppStore 并安装应用程序,然后我点击“打开”按钮,应用程序打开时没有链接。我很抱歉我的英语不好,但希望你能理解我。

更新

我见过类似的question 和question。

检查点。

    应用程序通过自定义架构 url 启动(openURL 被执行)(在我的例子中它与 bundle id 相同) 应用程序通过动态链接启动(continueUserActivity 被执行)。 我尝试使用蜂窝网络而不是 wi-fi,但没有成功。 如果未安装应用程序,请在动态链接上使用我的应用程序打开 AppStore。 在 didFinishLaunchingWithOptions 我调用 [FIRApp 配置]。

没有任何帮助。

我没有说我使用 Xamarin 和 Xamarin FireBase 可能是它使用了旧版本的原生 FireBase 库。

已解决!

Xamarin Firebase 插件已更新,问题已解决。

【问题讨论】:

【参考方案1】:

让我建议在未安装 iOS App 的情况下如何在 iOS 上测试 Firebase 动态链接。

从 iPhone 上移除 iOS 应用(确保使用实际设备,而不是模拟器); 生成 Firebase 动态链接并将链接粘贴到 iOS Notes 应用; 点击笔记应用中的链接; 确保看到插页式页面,点击“打开”按钮。之后,您应该导航到 Apple AppStore; 把断点或者NSLog放到[UIApplicationDelegate application:openURL:options:],观察url值; 使用 Xcode 安装和启动应用程序; 应用程序启动后不久,您应该观察到对带有 url 的 [UIApplicationDelegate application:openURL:options:] 的调用。在这里你会打电话:

FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];

如果找到 Firebase 动态链接,您应该会看到 dynamicLink.url 属性不为零。如果未找到 Firebase 动态链接,您将看到 dynamicLink.url 属性为零。

当此场景运行良好时,您可以在 Safari、Facebook、Email 和其他应用程序中重新检查 FDL 行为。

如果应用已经安装,那么点击 Firebase 动态链接应该会启动带有链接的应用。注意[UIApplicationDelegate application:continueUserActivity:restorationHandler:],值userActivity.webpageURL

【讨论】:

如果从 firebase 库中抽象出来,AppStore 是否应该使用 openURL 或 continueUserActivity 回调打开我的应用程序? AppStore 不会将任何链接传递给您的应用程序。因此,在安装 App 后,用户可以通过点击“打开”或从 iPhone 主屏幕直接从 AppStore 启动 App。在每种情况下,都没有将链接传递给应用程序。相反,“Firebase Dynamic Links iOS SDK”将从服务器检索待处理的动态链接,并使用找到的链接调用您的 UIApplicationDelegate 方法。 这对我来说是一个惊喜!但是 Firebase 怎么知道这个设备的链接是什么? 我已经完成了上述所有步骤,但没有人调用 openURL。我相信 [FIRApp configure] 可能会有所帮助,但事实并非如此。 @AlexeySubbota 请尝试此答案中列举的建议***.com/questions/45415731/… 如果这没有帮助,请打开 Firebase 错误,请参阅评论 ***.com/questions/45415731/…【参考方案2】:

我能够在不更改任何代码的情况下解决这个问题,只需运行pod update 并更新到最新版本的 Firebase。

【讨论】:

以上是关于如何将 Firebase 动态链接转移到新安装的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 动态链接新安装事件

如何将原来的oracle里dbf文件数据,导入到新安装的oracle里?

新安装的 XAMPP for Linux 上的“符号链接不允许或链接目标不可访问”

如何开始在 AppHarbor 上使用我新安装的 JabbR?

如何为新安装的 Boost 添加编译器包含路径和链接器库路径?

新安装的Ubuntu如何切换到root的方法