2015-11-16 27 views
18

與iOS9應用的OpenURL:sourceApplication:註釋已被棄用FBSDKApplicationDelegate應用的OpenURL:sourceApplication:註釋棄用

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

所以現在我們應該使用;

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

FBSDKApplicationDelegate什麼爲sourceApplication參數設置(字符串)

回答

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

,如果你在你的SDK註釋PARAM通過爲無

新SDK

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

更新2017年4月6日: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

我使用新的FB SDK所以是這樣,但其餘的工作,謝謝! (應用程序:UIApplication,openURL url:NSURL,options:[String:AnyObject]) - > Bool {}返回FBSDKApplicationDelegate.sharedInstance()。應用程序(app,openURL:url,sourceApplication:options [「UIApplicationOpenURLOptionsSourceApplicationKey」] as!String!,註釋:無) } –

+1

這是什麼FBAppCall? –

+0

在舊的fbsdk中,使用了FBAppCall類。但如果嘗試使用新的fbsdk,請調用 FBSDKApplicationDelegate.sharedInstance()。application(app,openURL:url,sourceApplication:options [「UIApplicationOpenURLOptionsSourceApplicationKey」] as!String!,註釋:nil ) –

4

下在Facebook網站上使用,直到(2017年1月1日)

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 
} 
相關問題