FBSDKApplicationDelegate应用程序openURL:sourceApplication:annotation已弃用

Mih*_*naz 18 openurl swift ios9

使用iOS9应用程序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)
}
Run Code Online (Sandbox Code Playgroud)

所以现在我们应该使用;

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

FBSDKApplicationDelegate为sourceApplication参数设置的内容(String)

小智 35

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

如果你的SDK传递中的注释参数为nil

新SDK

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

更新 2017/04/06: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)
}
Run Code Online (Sandbox Code Playgroud)

  • 我使用新的FB SDK就是这样,但其余的它正在工作,谢谢!func应用程序(app:UIApplication,openURL url:NSURL,options:[String:AnyObject]) - > Bool {return FBSDKApplicationDelegate.sharedInstance().application(app,openURL:url,sourceApplication:options ["UIApplicationOpenURLOptionsSourceApplicationKey"] as!String !,注释:nil)} (4认同)
  • 什么是FBAppCall? (2认同)

has*_*san 5

以下在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
}
Run Code Online (Sandbox Code Playgroud)