我正在尝试为我的应用程序进行基本的 LinkedIn 登录并获取用户的个人资料网址。我在项目中安装了 LinkedIn SDK。一些注意事项:在 info.plist 中,我适本地放置了 linkedin URL 方案、LSApplicationQueriesScheme 和 ExceptionDomains 属性。在我的应用程序委托(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/