2015-10-07 68 views
4

我在iOS中使用Linkedin SDK。 我用下面的代碼通過使用此代碼對用戶進行認證Linkedin iOS中的IOS問題

[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; 

}

我在URL Schemes.And使用「liMY_APPID」呼叫也從LinkedIn iOS SDK Bundle Suffix 嘗試請幫助我,我怎麼可以從LinkedIn應用得到回調

+0

你找出解決辦法嗎? –

+0

檢查我的答案。我已成功將其成功 –

回答

0

有你將所有捆綁包添加到LinkedIn開發人員中心的iOS版本中?如果沒有,請複製您的包ID並將其添加到https://www.linkedin.com/developer/apps/APP_ID/mobile,並且不要忘記保存

+0

所有捆綁條目都是正確的。並且給定的鏈接未打開。 –

+0

我有同樣的問題。一切都正確填寫,但LinkedIn應用程序不會將控制權交還給我的應用程序。 – Devos50

1

您是否已將LIAppId屬性添加到Info.plist中?

+0

已將「LIAppId」添加到projrct Info.plist –

+1

如果您使用的是url方案後綴,請確保它在Info.plist中指定。關鍵應該是「LISuffix」,值應該是後綴。另外,請註冊一個url格式,格式爲li - Rahul

6

確保,如果你使用的是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 

使用sourceApplication和註釋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

您的代碼只有正確的,但你的問題是關係到URL方案...


添加相同的URL方案在info.plist文件你在提到「 iOS URL後綴方案「這樣一旦linkedIn將調用相同的URL方案,可能是你在你的應用中使用了不正確的URL方案。

enter image description here

URL方案是什麼,但它是打開你的應用程序的鏈接。如果您在移動Safari瀏覽器即

testApp輸入您的URL方案://

它會打開你的應用程序(如果安裝)。使用下面的過程,你可以在你的項目中添加它放在你的info.plist

單擊鼠標右鍵,然後選擇打開爲 - 源代碼

enter image description here

info.plist右鍵單擊並選擇顯示原始鍵/值,輸出如下:

enter image description here

檢查鏈接查看更多細節添加custom URL schemes

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 
     }