首页 > 解决方案 > LinkedIn sdk iOS 错误,如果已经登录到 LinkedIn 应用程序

问题描述

我正在使用 iOS LinkedIn SDK 登录我的应用程序并检索基本配置文件。我第一次登录时一切正常,直到我注销或关闭我的应用程序。

在尝试使用 LinkedIn 重新登录我的应用程序时:通常重定向到 LinkedIn 应用程序,但我的应用程序的权限屏幕没有弹出,它只是直接重定向回我的应用程序,并出现以下错误:

Error Domain=LISDKAuthError Code=5 "(null)" UserInfo={errorDescription=操作无法完成。软件导致连接中止,originalDomain=LISDKServerError, errorInfo=PARSING_ERROR}

如果我先关闭 LinkedIn 应用程序,然后再重新打开我的应用程序,我才能再次成功登录。

请问有人知道发生了什么吗?

- 这不会发生在我所有的测试设备上!

- 在它确实发生的设备上,当运行 LinkedIn SDK 提供的示例应用程序时,我在该场景中也收到相同的错误。

-LinkedIn 应用程序是最新的。

- App id, bundle ids 等都设置好了,所以一半的时间登录成功!

-我试过在很多地方调用 [LISDKSessionManager clearSession]。

标签: iosobjective-cswiftlinkedinlinkedin-api

解决方案


我有一个类似的问题。它主要仅在 iOS 12 上重现。问题是当您已经运行了 LinkedIn 应用程序时,您将无法在您的应用程序中通过他们的 SDK 登录。在 iOS 11 上,您在此错误后第二次尝试登录时,授权工作正常。我通过简单地向用户显示一条警报来解决这个问题,其中包含一条关于他需要做什么来授权的消息。

在这里,您可以查看我在 Swift 4 中的实现示例:

LISDKSessionManager.createSession(withAuth: ["r_basicprofile"],
                                  state: nil, 
                                  showGoToAppStoreDialog: true,
                                  successBlock: { _ in
                   // Your actions in case of successful authorization
                }, errorBlock: { error in

                    guard let nsError = error as NSError? else {
                        return
                    }

                    if #available(iOS 12.0, *),
                        nsError.code == LISDKErrorCode.SERVER_ERROR.rawValue {
                        // Show alert to user with text - "Please, shut down the LinkedIn app and try login again"
                    } else if nsError.code != LISDKErrorCode.USER_CANCELLED.rawValue {
                        // Handling when user tap on Cancel button in LinkedIn SDK
                    }
})

推荐阅读