微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有时在iOS的第一次会话中未调用Branch.io initSession的回调

如何解决有时在iOS的第一次会话中未调用Branch.io initSession的回调

从AppStore下载应用程序后(以及在某些情况下使用xCode)在AppDelegate中注册的回调( Branch.getInstance()。initSession(launchOptions:...))不会在全部(或在40-50秒后调用,这是不可接受的)。在已安装分支程序的情况下打开应用程序不会引起任何问题(调用回调,数据正确,一切都很好)。 Android中相同的API可以正常工作。我很肯定documentation是逐步遵循的。 BranchUniversalObject数据示例:

  • canonicalIdentifier:用户/ {user_id}
  • canonicalUrl:https:// {domain_name} / u / {user_id}
  • $ ios_deeplink_path / $ android_deeplink_path:打开/ u / {user_id}

任何帮助将不胜感激。 谢谢。

编辑:AppDelegate中负责处理分支数据的代码部分。

Branch.getInstance().initSession(launchOptions: launchOptions,isReferrable: isReferrable) { [weak self] (params,error) in
    if let data = params as? [String: AnyObject],let value = data["+clicked_branch_link"] as? Bool {
        self?.clickedBranchLink = value
    }
    registerDeepLinkHandler?(params,error)
}

解决方法

确保您的代码不会在 initSession 之前调用 setIdentity。 根据 Branch 集成文档 -

如果之前调用过,那么我们会在设置回调之前静默初始化SDK,以执行该方法所需的任务

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。