我在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获得回调
答案 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方案。
URL方案只不过是一个打开应用程序的链接。如果您在移动safari中输入您的URL方案,即
testApp://
它会打开你的应用程序(如果已安装)。使用以下过程,您可以将其添加到项目中
右键点击info.plist
,然后选择打开方式 - 源代码:
右键单击info.plist
并选择显示原始键/值,输出结果如下:
检查链接以了解更多详细信息以添加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,并且不要忘记保存。