ios中的Linkedin SDK问题

时间:2015-10-07 11:16:07

标签: ios xcode linkedin linkedin-api

我在ios中使用Linkedin SDK。     我正在使用以下代码来验证用户

    [LISDKSessionManager createSessionWithAuth:[NSArray arrayWithObjects:LISDK_BASIC_PROFILE_PERMISSION, LISDK_EMAILADDRESS_PERMISSION, nil]
                                 state:nil//@"some state"
                                 showGoToAppStoreDialog:YES
                                           successBlock:^(NSString *returnState) {

                                           }
                                             errorBlock:^(NSError *error) {

                                             }
 ];

通过使用此代码,我可以打开linkedin应用程序,但无法从linkedin应用程序回调到我的应用程序。

未接听电话
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

NSLog(@"%s url=%@","app delegate application openURL called ", [url absoluteString]);
if ([LISDKCallbackHandler shouldHandleUrl:url]) {
    return [LISDKCallbackHandler application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
}
return YES;

}

我正在使用" liMY_APPID"在URL Schemes.And尝试从LinkedIn iOS SDK Bundle Suffix 请帮助我如何从linkedin app获得回调

5 个答案:

答案 0 :(得分:7)

确保您使用iOS 9.0或更高版本作为基本SDK

- (BOOL)application:(UIApplication *)application 
            openURL:(NSURL *)url 
  sourceApplication:(NSString *)sourceApplication 
         annotation:(id)annotation
从iOS 9弃用

而是使用

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<NSString *,
                             id> *)options

分别对源应用和注释使用options[UIApplicationLaunchOptionsSourceApplicationKey]options[UIApplicationLaunchOptionsAnnotationKey]

示例:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    if ([LISDKCallbackHandler shouldHandleUrl:url]) {
        return [LISDKCallbackHandler application:app openURL:url sourceApplication:options[UIApplicationLaunchOptionsSourceApplicationKey] annotation:options[UIApplicationLaunchOptionsAnnotationKey]];
    }
    return YES;

}

答案 1 :(得分:2)

您的代码只是正确的,但您的问题与网址方案有关...

在您的info.plist文件中添加相同的网址方案,您在&#34; iOS网址后缀方案&#34;因此,一旦linkedIn将调用相同的URL方案,您可能在您的应用程序中使用了错误的URL方案。

enter image description here

URL方案只不过是一个打开应用程序的链接。如果您在移动safari中输入您的URL方案,即

  

testApp://

它会打开你的应用程序(如果已安装)。使用以下过程,您可以将其添加到项目中

右键点击info.plist,然后选择打开方式 - 源代码

enter image description here

右键单击info.plist并选择显示原始键/值,输出结果如下:

enter image description here

检查链接以了解更多详细信息以添加custom URL schemes

答案 2 :(得分:2)

问题已解决

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

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

            return true
        }

答案 3 :(得分:1)

您是否已将LIAppId属性添加到Info.plist中?

答案 4 :(得分:-1)

您是否已将所有捆绑包添加到LinkedIn开发者的iOS中心?如果没有,请复制您的包ID并将其添加到The best one,并且不要忘记保存