2016-07-20 4 views
0

Ich versuche, die Firebase einlädt, wenn Sie universelle Links verwenden. Wenn ein Benutzer auf den Einladungslink klickt, z. B. aus der E-Mail, wird die folgende Methode aufgerufen.Handhabung Firebase-Einladung von ContinueUserActivity-Methode

Wie bekomme ich die Einladung von der URL?

@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! 
} 

die Einladung erhalten i

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

Ich denke, das Problem auf, was auf die Anwendung und Annotation Parameter aufrufen müssen passieren legt. Ich versuche bereits das gebündelte SourceApplication zu übergeben, hat aber keinen Effekt.

Hinweis: Die in Firebase-Einladung verwendeten Methoden example werden nicht aufgerufen, sobald die Methode continueUserActivity hinzugefügt wird.

Antwort

0

Versuchen Sie diese. Es ist in objective c, aber Sie können es auch zu swift Konzert. Hoffe das hilft dir.

- (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; 
}