gpt4 book ai didi

iOS 12.1.2 branch.io 通用链接打开应用程序,但不存在数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:21 25 4
gpt4 key购买 nike

我正在尝试通过 branch.io 为 iOS 应用程序 (Swift 4.2) 实现深层链接。我已经完全按照分支文档中的概述集成了 iOS SDK。为了测试集成,我运行了 branch.io 通用链接验证脚本并成功通过。

什么不适用于通用链接:单击“笔记”或“消息”中的深层链接确实会打开应用程序,但不会传递任何数据。当查看调试日志。这与在没有深层链接的情况下手动打开应用程序相同。也无法通过延迟的深层链接功能获得任何数据。

使用 URI 方案而不是通用链接:如果我通过 branch.io 链接设置仪表板关闭通用链接,则所有 url 都会在浏览器中打开,而不会提示打开应用程序。但是,当我手动打开应用程序时,深层链接数据在启动时可用(通过延迟链接功能)。

其他尝试:将 $uri_redirect_mode: 2 添加到链接数据以强制打开应用程序并没有真正改变任何东西。唯一不同的是,对于 URI 方案,它会在重定向到 $fallback_url 之前在 Safari 中显示错误。我还尝试重新安装应用程序,清除 Safari 缓存和 cookie,但没有成功。

我还会提到深层链接本身应该没有问题。在 Android 上,相同的深层链接可以完美地工作。

这两种方法都无法打开带有立即可用的深层链接数据的应用程序。是否有任何其他选项可以使这项工作正常进行?

更新:URI 和通用链接是不同的问题。我们通过仔细检查我们的 URI 方案(这是不正确的)来让 URI 工作。对于通用链接,Branch 的 Swift 4.2 文档中可能存在轻微错误。请参阅我的答案以获取解决方案。

更新 2019-02-05:Branch 文档已针对 Swift 4.2 进行了更新。一切都运行良好。

最佳答案

2019-02-05 更新:Branch 文档现在是 Swift 4.2 的最新版本。


原始答案:

好的,我们找到了通用链接不起作用的解决方案。我相信 Branch 文档不是 Swift 4.2 的最新版本。在处理通用链接时,func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) 协议(protocol)应该使用 [UIUserActivityRestoring] 而不是 [Any] 用于 restorationHandler 参数。见下文:

当前分支文档(不工作):

func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
// handler for Universal Links
Branch.getInstance().continue(userActivity)
return true
}

上述函数还会在 XCode 中引起警告。自动修复它不起作用,它只会将其转换为私有(private)函数而不是正确的协议(protocol)。

校正(工作):

func application(_ application: UIApplication, 
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
// handler for Universal Links
Branch.getInstance().continue(userActivity)
return true
}

关于iOS 12.1.2 branch.io 通用链接打开应用程序,但不存在数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54118308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com