我正在使用 Firebase 邀请使用推荐代码邀请朋友。我需要知道如何在我的 iOS 应用程序中处理以下场景。
我已按照此指南进行 Firebase Invite 实施。
案例 1: iPhone 上未安装应用程序,用户通过邀请安装应用程序。我需要"deeplink"
来自被邀请者的参数集中的推荐代码。或应用程序已安装且当前未运行用户单击电子邮件中的邀请 url。
解决方案>>据我所知,didFinishLaunchingWithOptions
方法内部的代码将处理这种情况。
if let inviteUrl = launchOptions?[UIApplicationLaunchOptionsURLKey] as? NSURL {
//App opened from invite url
self.handleFirebaseInviteDeeplink(inviteUrl)
}
案例 2:应用程序已安装且当前在 iPhone 上运行,用户点击电子邮件中的邀请链接。
解决方案>> AppDelegate 中的以下方法将处理我假设的代码。
@available(iOS 9.0, *)
func application(application: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
return self.application(application, openURL: url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, annotation: "")
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
if let invite = FIRInvites.handleURL(url, sourceApplication:sourceApplication, annotation:annotation) as? FIRReceivedInvite {
let matchType = (invite.matchType == FIRReceivedInviteMatchType.Weak) ? "Weak" : "Strong"
print("\n------------------Invite received from: \(sourceApplication) Deeplink: \(invite.deepLink)," + "Id: \(invite.inviteId), Type: \(matchType)")
if (matchType == "Strong") {
print("\n-------------- Invite Deep Link = \(invite.deepLink)")
if !invite.deepLink.isEmpty {
let url = NSURL(string: invite.deepLink)
self.handleFirebaseInviteDeeplink(url!)
}
}
return true
}
return GIDSignIn.sharedInstance().handle(url, sourceApplication: sourceApplication, annotation: annotation)
}
问题是我找不到测试任何场景的方法。谁能指出我正确的方向。
谢谢您的帮助。