【问题标题】:LinkedIn Swift session creation completion handler not being called未调用 LinkedIn Swift 会话创建完成处理程序
【发布时间】:2018-04-01 23:09:44
【问题描述】:

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

【问题讨论】:

    标签: swift xcode linkedin linkedin-api


    【解决方案1】:

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

    在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
            }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 很遗憾,我还没有找到解决办法
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多