LinkedIn Swift会话创建完成处理程序未被调用

时间:2017-10-20 18:04:53

标签: swift xcode linkedin linkedin-api

我尝试为我的应用程序进行基本的LinkedIn登录,并获取用户的个人资料网址。我在我的项目中安装了LinkedIn SDK。几个注释:在info.plist中,我已经适当地放置了linkedin URL Scheme, LSApplicationQueriesScheme ExceptionDomains 属性。在我的应用代表中,我有

 func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    if LISDKCallbackHandler.shouldHandle(url) {
        return LISDKCallbackHandler.application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
    }
}

所以,在我的一个观点中,我试图让用户使用linkedin登录。我把这段代码放进去:

LISDKSessionManager.createSession(withAuth: [LISDK_BASIC_PROFILE_PERMISSION], state: nil, showGoToAppStoreDialog: true, successBlock: { (returnState) -> Void in
      print("success called!")
      print(LISDKSessionManager.sharedInstance().session)
    }) { (error) -> Void in
       print("Error: \(error)")
    }

此代码会将用户带到linkedin应用程序,提示他们授权我的应用程序的权限,然后返回我的应用程序。但是,成功和错误块永远不会被调用。我在它们两个上设置断点以确保它们不打印空字符串,但它们从未被调用过。我试过等了几分钟,但仍然没有。我做错了什么?

2 个答案:

答案 0 :(得分:2)

我也有这个问题。最后解决了这样做: -

app delegate 部分中,您需要实现此部分代码

     if LISDKCallbackHandler.shouldHandle(url) {
                    return LISDKCallbackHandler.application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
                }
        return true

}

在以下委托方法

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
}

投入

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {

应该是这样的

  func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

       if LISDKCallbackHandler.shouldHandle(url) {
                return LISDKCallbackHandler.application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
            }

            return true
        }

答案 1 :(得分:0)

我可能有一个解决方案给你。您的手机上是否有多个使用相同Linkedin应用程序ID的应用程序?如果你这样做,你应该删除其他的。