2015-11-16 10 views
18

z iOS9 aplikacji OpenURL: sourceApplication: adnotacja jest przestarzałaFBSDKApplicationDelegate aplikacja OpenURL: sourceApplication: adnotacja przestarzałe

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool { 
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) 
} 

więc teraz powinniśmy używać;

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {} 

FBSDKApplicationDelegate co ustawić dla parametru sourceApplication (String)

Odpowiedz

32
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool 
{ 
    return FBAppCall.handleOpenURL(url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String) 
} 

jeśli masz adnotacji param w swoim SDK uchodzić za nil

Nowe SDK

let sourceApplication: String? = options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String 
    return FBSDKApplicationDelegate.sharedInstance().application(app, openURL: url, sourceApplication: sourceApplication, annotation: nil) 

Aktualizacja 6.04.2017: Xcode 8.3, FBSDKCoreKit 4.20.2

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 
    let sourceApplication: String? = options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String 
    return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: sourceApplication, annotation: nil) 
} 
+4

używam nowy FB SDK więc było tak, ale do końca działa, dzięki! zastosowanie func (app: UIApplication, OpenURL URL: bibliotece NSURL opcje: [łańcuch: AnyObject]) -> Bool { powrotu FBSDKApplicationDelegate.sharedInstance() aplikacji (app OpenURL. URL sourceApplication: Opis [ "UIApplicationOpenURLOptionsSourceApplicationKey"] as! String !, adnotacja: nil) } –

+1

Co to jest FBAppCall? –

+0

W starym fbsdk używana jest klasa FBAppCall. Ale jeśli spróbujesz z nowym fbsdk, zadzwoń pod numer FBSDKApplicationDelegate.sharedInstance(). Application (app, openURL: url, sourceApplication: options ["UIApplicationOpenURLOptionsSourceApplicationKey"] jako! String !, adnotacja: nil) –

4

Poniższy wykorzystywane na stronie facebook till (sty 1, 2017)

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 
     let handled = FBSDKApplicationDelegate.sharedInstance().application(app, 
         open: url, 
         sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String?, 
         annotation: options[UIApplicationOpenURLOptionsKey.annotation]) 

     return handled 
}