swift - LinkedIn Swift session 创建完成处理程序未被调用

标签 swift xcode linkedin-api

我正在尝试为我的应用程序进行基本的 LinkedIn 登录并获取用户的个人资料网址。我在项目中安装了 LinkedIn SDK。一些注意事项:在 info.plist 中,我适本地放置了 linkedin URL 方案、LSApplicationQueriesSchemeExceptionDomains 属性。在我的应用程序委托(delegate)中,我有

 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 应用程序,提示他们为我的应用程序授权权限,然后返回到我的应用程序。但是,成功和错误 block 永远不会被调用。我在它们两个上都设置了断点,以确保它们不会打印空字符串,但它们只是从未被调用。我尝试等待几分钟,但仍然没有任何反应。我做错了什么?

最佳答案

我也遇到这个问题了。最后通过这样做解决了:-

应用程序委托(delegate)部分中,您需要实现这部分代码

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

}

在下面的委托(delegate)方法

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
        }

关于swift - LinkedIn Swift session 创建完成处理程序未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46854858/

相关文章:

html - FontAwesome 从网络链接加载,但在 xCode 上本地失败

javascript - 如何自动搜索和过滤linkedin中的所有工程师并将结果存储在excel中?

ios - CGMutablePath X 和 Y 应该接受其 View 的边界

ios - 使用 aubio 读取文件时,在 Swift 的 ExtAudioFileOpenURL 中获取错误代码 ('wht?')

xcode - 解除分配旧的 SKscene Swift

swift - 注册时无法显示应用程序包 ID 的自动强密码

linkedin-api - 公司简介 API :LinkedIn

javascript - jQuery AJAX 调用 Vanilla JS,我错过了什么?

swift - 以编程方式将 View Controller 分配给选项卡栏 Controller

ios - 如何通过 PFQuery 从 Parse 中删除对象