VK接入
1.vk后臺(tái)創(chuàng)建應(yīng)用 -- 地址
image-20201222165934842
2.獲取SDK,在github上下載的工程打開進(jìn)行編譯獲取對(duì)應(yīng)的framework
image-20201222171049124
3.將SDK加入項(xiàng)目中
-
將下列代碼加到
info.plist
中<key>LSApplicationQueriesSchemes</key> <array> <string>vk</string> <string>vk-share</string> <string>vkauthorize</string> </array>
添加成功后如下所示
image-20201222171425705 -
在
info
中鞠绰,URL Types
添加如下內(nèi)容杰捂,其中Identifier和URL Schemes為vk
+VK后臺(tái)創(chuàng)建的應(yīng)用ID
image-20201222171848263
-
在需要調(diào)用的地方導(dǎo)入
#import <VKSdkFramework/VKSdkFramework.h>
#import <VKSdkFramework/VKSdkFramework.h>
-
SDK初始化
1.將代碼放入應(yīng)用程序委托方法里
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options { [VKSdk processOpenURL:url fromApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]]; return YES; }
注意:如果您已經(jīng)添加了FaceBook SDK让蕾,并且返回了其中一種方法
[FBSDKDelegate ...]
钳枕,則可以對(duì)其進(jìn)行處理-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; [VKSdk processOpenURL:url fromApplication:sourceApplication]; return YES; }
3.在需要調(diào)用的頁(yè)面
- (**void**)viewDidLoad { [super viewDidLoad]; [[VKSdk initializeWithAppId:@"3974615"] registerDelegate:self]; [[VKSdk instance] setUiDelegate:self]; SCOPE = @[VK_PER_FRIENDS, VK_PER_EMAIL]; [VKSdk wakeUpSession:SCOPE completeBlock:^(VKAuthorizationState state, NSError *error) { NSLog(@"state:%lu",(unsigned long)state); if (state == VKAuthorizationAuthorized) { NSLog(@"可以登錄"); } else if (error) { NSLog(@"發(fā)生錯(cuò)誤:%@",error.description); } }]; }
4.添加delegate
<VKSdkUIDelegate,VKSdkDelegate>
5.在點(diǎn)擊VK登錄的方法里調(diào)用如下方法
[VKSdk authorize:SCOPE];
6.實(shí)現(xiàn)代理方法
- (void)vkSdkAccessAuthorizationFinishedWithResult:(VKAuthorizationResult *)result { if (result.token) { NSLog(@"userid:%@",result.token.userId); NSLog(@"accessToken:%@",result.token.accessToken); //登錄成功,獲取到userId贵白,執(zhí)行后續(xù)操作(如登錄等) } else if (result.error) {//失敗 NSLog(@"error:%@",result.error.description); } } - (void)vkSdkNeedCaptchaEnter:(VKError *)captchaError { VKCaptchaViewController *vc = [VKCaptchaViewController captchaControllerWithError:captchaError]; [vc presentIn:self]; } - (void)vkSdkTokenHasExpired:(VKAccessToken *)expiredToken { [VKSdk authorize:SCOPE]; } - (void)vkSdkUserAuthorizationFailed { NSLog(@"failed"); } - (void)vkSdkShouldPresentViewController:(UIViewController *)controller { [self presentViewController:controller animated:YES completion:nil]; }
注:
如果沒有裝VK APP墩新,點(diǎn)擊VK登錄沒有提示,暫沒做處理