我只需创建一个这样的网址:
Branch.getInstance().getShortURL(withParams: ["a": [1, 2, 3], "b": ["c": 34, "d": "Malwina is OK:-)"]]) { url, error in
let controller = UIActivityViewController(activityItems: [URL(string: url!)!], applicationActivities: nil)
self.present(controller, animated: true, completion: nil)
}
我得到这样的东西:
https://fieldserviceios.app.link/Hjp9gesGIB
从该链接我尝试打开应用程序并捕获该参数:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
let a = Branch.getInstance().getLatestReferringParams() //no my params here
}
答案 0 :(得分:1)
您创建链接的方式很好,您正在生成有效的链接。您可以通过附加"?debug = true"来检查任何Branch链接的内容。链接并在浏览器的地址栏中输入。
对于您的链接:https://fieldserviceios.app.link/Hjp9gesGIB?debug=true我看到了:
{
"$identity_id": "372863071192286427",
"$one_time_use": false,
"a": [1,2,3],
"b": {
"c": 34,
"d": "Malwina jest OK:-)"
},
"~creation_source": 3,
"~id": "373038618178427139"
}
我将介绍如何从我对其他Stack Overflow问题的响应中的链接中读取参数,例如:How do I access metadata when branch link was clicked and opened my app...?,但请说明您提供的具体代码:
您的continueUserActivity函数不应该有getLatestReferringParams调用,但应该具有:
Branch.getInstance()。继续(userActivity)
您需要使用branch.initSession在didFinishLaunchingWithOptions中初始化Branch。有关示例,请参阅:https://github.com/BranchMetrics/ios-branch-deep-linking/blob/master/Branch-TestBed-Swift/TestBed-Swift/AppDelegate.swift#L43-L74