从continueUserActivity方法处理Firebase邀请

时间:2016-07-20 22:03:39

标签: ios swift firebase firebase-invites

我正在尝试使用通用链接时处理firebase邀请。 当用户点击邀请链接时,例如,从电子邮件中调用以下方法。

如何从网址获取邀请?

@available(iOS 8.0, *)
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {

let handled = FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
  // ...
  }

return handled!
}

要获得邀请,我需要致电

FIRInvites.handleURL(url, sourceApplication:sourceApplication, annotation:annotation)

我认为问题在于传递给应用程序和注释参数的内容。我已经尝试在sourceApplication上传递捆绑但没有效果。

注意:一旦添加了continueUserActivity方法,就不会调用firebase邀请example中使用的方法。

1 个答案:

答案 0 :(得分:0)

试试这个。 它在目标c中,但你也可以迅速将其演唱。希望这能帮助你。

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
{
    NSURL *url = userActivity.webpageURL;


    FIRDynamicLinks *links = [FIRDynamicLinks dynamicLinks];
    if([links matchesShortLinkFormat:url])
    {
        [links resolveShortLink:url completion:^(NSURL * _Nullable url, NSError * _Nullable error)
        {
                NSString *message =
                [NSString stringWithFormat:@"Deep link  \n:%@",
                 url];

                [[[UIAlertView alloc] initWithTitle:@"Deep-link Data"
                                            message:message
                                           delegate:nil
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil] show];



        }];

        return YES;
    }
 return false;
}