每当访问照片、购买、本地化等时,都会调用 Branch.io 闭包

Posted

技术标签:

【中文标题】每当访问照片、购买、本地化等时,都会调用 Branch.io 闭包【英文标题】:Branch.io closure gets called whenever accessing photos, purchases, localization etc 【发布时间】:2017-04-09 18:28:31 【问题描述】:

所以我的问题是,当用户第一次允许应用程序进入库时,进行 inapppurchase 或本地化 initSession 从 addDelegate 的关闭被触发,并导致再次打开 vc。每次访问的行为都是一样的,它们没有以任何方式与分支连接,而且它们的 superview vc 甚至不导入分支。所以我认为问题可能出在我的 info.plist 中,但一切似乎都是正确的,不知道出了什么问题。任何人都可以帮助。谢谢

plist printscreen

var window: UIWindow?
func ...didFinishLaunchingWithOptions... 
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
window?.rootViewController = firstVC()

let branch = Branch.getInstance()
branch?.initSession(launchOptions: launchOptions, automaticallyDisplayDeepLinkController: true, deepLinkHandler:  params, error in
if error == nil && params?["+clicked_branch_link"] != nil && params?["postKey"] != nil
self.window?.rootViewController = MainVC()
else
self.window.rootViewController = LoginVC()

)

【问题讨论】:

来自 Branch.io 的 Alex 在这里:恐怕你的问题很难理解。您能否编辑以包含对您所看到的确切内容的具体分步说明,或发布显示问题的视频? @AlexBauer 抱歉回复晚了,但很忙。好的,所以我会给你一个逐步的解释,因为我不想共享应用程序屏幕。所以,假设我正在启动我的应用程序,当加载主(第一个)视图控制器时,当我按下来自 'branch?.initSession(launchingOptions:launchOptions, andRegisterDeepLinkHandler : params, error in ...' 被调用,因为在这个处理程序中我得到了我的 rootviewcontroller 应用程序,它被再次调用。这只发生在你的 initSession 处理程序中,而不是在 didFinishLaunchi 中 你的评论被截断了。您能否编辑您的原始问题并提供有关该问题的分步信息?或者,请随时与分公司联系integrations team 【参考方案1】:

只要应用程序处于活动状态,就会触发分支初始化回调。对于冷启动,这是由 didFinishLaunchingWithOptions 中的 init 调用触发的。对于热启动,这是由您添加到 continueUserActivity 或(现在很少)openURL 中的分支代码触发的。这可以通过 SDK 维护指向 init 回调的指针来实现,并且 SDK 还将根据需要注册“打开”或“安装”事件。

每当应用程序终止或后台运行时,Branch SDK 都会注册一个“关闭”事件并清除所有会话数据。

根据您的描述,当您提示用户向应用授予各种权限时,您的应用听起来像是在后台运行。发生这种情况时,SDK 将关闭会话并清除会话参数。当应用恢复时,它不再是被引用的会话,因此没有可用的链接参数。

解决此类问题有两种基本方法:

    使用本地存储存储您感兴趣的分支链接参数,以便在应用第二次激活时检索它们 修改应用设计,使其不再产生这些弹出式权限提示

【讨论】:

感谢您的回答,但想通了,解决方案是将分支代码中的观察者从 becomeActive 和 willResign 更改为 didEnterBakground 和 willEnterForeground 太棒了!如果您可以将其作为此问题的官方答案发布,那就太好了。

以上是关于每当访问照片、购买、本地化等时,都会调用 Branch.io 闭包的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 横向应用程序无法访问照片库

无法访问 kubernetes nodeport 服务

MySQL是什么?

每当我移动到不同的选项卡屏幕时,它都会显示错误“不支持访问路由对象的状态属性”

每当页面重新加载或URL更改发生时,每次都会调用typescript文件

无法从 Facebook 获取照片