DID SDK [使用文档]
一、安装
因为SDK目前尚未发布至GitHub,目前只支持手动安装。
手动安装:
-
将 DIDSDK.framework和DIDSDKBundle.bundle文件拷贝到项目中。
-
进入你的项目,选择
Add files to Your Project Name。 -
导入 DIDSDK。
graph LR
DIDSDK.framework --> Project{Your Project}
DIDSDKBundle.bundle --> Project
in Swift
import DIDSDK
in Objective-C
#import <DIDSDK/DIDSDK.h>
二、使用
SDK权限设置:
1、打开info.plist,添加Application supports iTunes file sharing,设置为NO
2、打开info.plist,添加View controller-based status bar appearance,设置为YES
3、打开info.plist,添加Privacy - Microphone Usage Description
4、打开info.plist,添加Privacy - Camera Usage Description
SDK版本要求:
[iOS 11] && [iOS 11 +]
SDK注册:
进入AppDelegate.m中注册SDK:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString * baseUrl = @"";
NSString * qrUrl = @"";
#ifdef DEBUG
baseUrl = @"http://10.8.10.89:31235";
qrUrl = @"https://10.9.244.207:26091";
#else
baseUrl = @"https://h5.cd.host89.xplorer.sensetime.com/";
qrUrl = @"https://10.9.244.207:26091";
#endif
NSString *clientId = @"2ju58mgdr1b18xnc";
NSString *clientKey = @"s1sag5fo0mlakt4pr0yy6nox8kfit1xd";
NSString *phoneNumber = @"13000000011";
NSString *phoneCountryCode = @"86";
[DIDSDKManager.shared registerSDKWithClientId:clientId clientKey:clientKey phoneCountryCode:phoneCountryCode phoneNumber:phoneNumber baseUrl:baseUrl qrUrl:qrUrl resultBlock:^(ResultErrorType type, NSString * _Nonnull msg) {
NSLog(@"Return the Registration Outcome:%ld,message:%@",(long)type, msg);
}];
return YES;
}
当注册回调中,ResultErrorType为RESULTTYPE_SUCCESS_REGISTER时,代表注册成功,更多类型可以查看DIDSDKManagerDefine.h。
注意: 在使用SDK前,请务必保证在SDK注册成功后,否则将无法正常使用.
开始认证:
当您需要使用SDK的认证服务时:
[[DIDSDKManager shared] startServiceFromeNavi:self.navigationController resultBlock:^{
// do something...
}];
当您需要使用SDK的Open API服务时:
您可以导入#import <DIDSDK/DIDNetManager+Post.h>,并查看DIDNetManager+Post.h中的请求方法。
请求回调定义:
/// 数据请求回调
typedef void (^RequestCompleteServiceBlock)(NSDictionary *dic);
typedef void (^RequestErrorServiceBlock)(NSError *error);
请求方法定义:
/// Send SMS Messgae
/// - Parameters:
/// - phoneNumber: phoneNumber
/// - phoneCountryCode: phoneCountryCode
/// - channel: channel
+(void)sendSmsMessagingWithPhoneNumber:(NSString *)phoneNumber
phoneCountryCode:(NSString *)phoneCountryCode
channel:(SMSChannel)channel
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// get AccessToken By Face Image
/// - Parameters:
/// - portraitImage: portraitImage
/// - verifyMethod: verifyMethod
/// - block: block
+(void)getAccessTokenByFacePortraitImage:(NSString *)portraitImage
verifyMethod:(VerifyMethod)verifyMethod
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// get AccessToken By Emaie or Phone
/// - Parameters:
/// - email: email description
/// - password: password description
/// - phoneNumber: phoneNumber description
/// - phoneCountryCode: phoneCountryCode description
/// - phonePassCode: phonePassCode description
/// - verifyMethod: verifyMethod
/// - block: block
+(void)getAccessTokenByEmailOrMobileWithEmail:(NSString *)email
password:(NSString *)password
phoneNumber:(NSString *)phoneNumber
phoneCountryCode:(NSString *)phoneCountryCode
phonePassCode:(NSString * )phonePassCode
verifyMethod:(VerifyMethod)verifyMethod
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// User Inquiry
/// - block: block
+(void)getAccountWithCompleteBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// User phone number modification
/// - Parameters:
/// - newPhoneNumber: newPhoneNumber
/// - newPhonePassCode: newPhonePassCode
/// - newPhoneCountryCode: newPhoneCountryCode
/// - block: block
+(void)modificationUserPhoneNumberWithNewPhoneNumber:(NSString *)newPhoneNumber
newPhonePassCode:(NSString *)newPhonePassCode
newPhoneCountryCode:(NSString *)newPhoneCountryCode
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// User attribute modification
/// - Parameters:
/// - userName: userName
/// - familyName: familyName
/// - middleName: middleName
/// - givenName: givenName
/// - avatarImage: avatarImage
/// - portraitImage: portraitImage
/// - idType: idType
/// - idNumber: IidNumber
/// - birthday: birthday,format is yyyy-MM-dd
/// - gender: gender
/// - company: company
/// - address: address
/// - block: block
+(void)modificationUserAttributeWithUserName:(NSString *)userName
familyName:(NSString *)familyName
middleName:(NSString *)middleName
givenName:(NSString *)givenName
avatarImage:(NSString *)avatarImage
portraitImage:(NSString *)portraitImage
idType:(IdType)idType
idNumber:(NSString *)idNumber
birthday:(NSString *)birthday
gender:(GenderType)gender
company:(NSString *)company
address:(NSString *)address
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// User registration
/// - Parameters:
/// - passCode: passCode
/// - email: email
/// - phoneCountryCode: phoneCountryCode
/// - givenName: givenName
/// - userName: userName
/// - familyName: familyName
/// - middleName: middleName
/// - givenName: givenName
/// - avatarImage: avatarImage
/// - portraitImage: portraitImage
/// - idType: idType
/// - idNumber: idNumber
/// - birthday: birthday, format is yyyy-MM-dd
/// - gender: gender
/// - company: company
/// - address: address
/// - block: block
+(void)userRegistrationWithPassCode:(NSString *)passCode
email:(NSString *)email
phoneNumber:(NSString *)phoneNumber
phoneCountryCode:(NSString *)phoneCountryCode
userName:(NSString *)userName
familyName:(NSString *)familyName
middleName:(NSString *)middleName
givenName:(NSString *)givenName
avatarImage:(NSString *)avatarImage
portraitImage:(NSString *)portraitImage
idType:(IdType)idType
idNumber:(NSString *)idNumber
birthday:(NSString *)birthday
gender:(GenderType)gender
company:(NSString *)company
address:(NSString *)address
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// User deletion
/// - block: block
+(void)userDeletionWithCompleteBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// AccessToken refreshing
/// - Parameters:
/// - refreshToken: refreshToken
/// - block: block
+(void)refreshingAccessTokenWithRefreshToken:(NSString *)refreshToken
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// Logout of AccessToken
/// - block: block
+(void)logoutWithCompleteBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// Organizational Information Inquiry
/// - block: block
+(void)getOrganizationalWithCompleteBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
/// kafd-access-control
/// - block: block
+(void)qrcodesWithUserId:(NSString *)userId
completeBlock:(RequestCompleteServiceBlock)successBlock
errorBlock:(RequestErrorServiceBlock)errorBlock;
其中关于SMSChannel、VerifyMethod、IdType、GenderType的定义和说明,请查看
DIDSDKManagerDefine.h
SDK提供的文件
为了帮助您更好的使用DID SDK,我们提供的以下头文件和SDK需要的资源文件:
| DID SDK Header | Bundle |
|---|---|
SDK Manager | cer |
SDK Network | img |
SDK Cache | language |
model |