接入流程
-
將SDK的framework導(dǎo)入到工程中
- 配置工程
-
將申請的appId添加到URL Types中作為釘釘回調(diào)的scheme;URL Schemes填寫申請的AppId喘蟆。 iOS9及以后的系統(tǒng)需要將釘釘和分享SDK的scheme配置在Info.plist。LSApplicationQueriesSchemes列表中,scheme分別為 hsedu, hsedu-sso靠娱。
-
注冊應(yīng)用并添加必要的URLHandler
-
判斷當(dāng)前設(shè)備是否支持分享到釘釘
注意:在iOS9上需要將釘釘SDK相關(guān)的Scheme注冊到Info.plist的LSApplicationQueriesSchemes名單中蚌讼,否則會導(dǎo)致檢測方法總是返回NO望几。
iOS平臺應(yīng)用授權(quán)登錄接入代碼示例
- Info.plist配置查詢寰爍授權(quán)登錄scheme權(quán)限端礼。LSApplicationQueriesSchemes中添加hsedu, hsedu-sso括饶。hsedu用于查詢是否安裝寰爍囊咏。hsedu-sso用于查詢是否支持授權(quán)登錄恕洲。注:iOS系統(tǒng)限制LSApplicationQueriesSchemes最多只能有50個,超出的話會有一部分不生效梅割。
- Info.plist的URL Types中增加appId霜第,用于寰爍App返回回調(diào)。
- app啟動時注冊appId户辞。示例代碼:
// 在app啟動時注冊appId
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 注冊AppId及AppSecret;
[HSOpenAPI registerApp:#該應(yīng)用的appId# appSecret:#該應(yīng)用的AppSecret#];
return YES;
}
- 發(fā)起授權(quán)登錄泌类。示例代碼:
BOOL result = [HSOpenAPI openDingTalkForSSO];
if (result) {
NSLog(@"授權(quán)登錄 發(fā)送成功.");
}
else {
NSLog(@"授權(quán)登錄 發(fā)送失敗.");
}
- 處理回調(diào)。示例代碼:
// 在app delegate鏈接處理回調(diào)中調(diào)用寰爍回調(diào)鏈接處理方法
- (BOOL)application:(UIApplication *)application
openURL:(nonnull NSURL *)url
sourceApplication:(nullable NSString *)sourceApplication
annotation:(nonnull id)annotation
{
if ([HSOpenAPI handleOpenURL:url delegate:self]) {
return YES;
}
return NO;
}
// delegate實現(xiàn)回調(diào)處理方法 onResp:
- (void)onResp:(DTBaseResp *)resp
{
//授權(quán)登錄回調(diào)參數(shù)為HSAuthorizeResp底燎,accessCode為授權(quán)碼
if ([resp isKindOfClass:[HSAuthorizeResp class]]) {
HSAuthorizeResp *authResp = (HSAuthorizeResp *)resp;
if (HSOpenAPISuccess == authResp.errorCode) {
NSString *accessCode = authResp.accessCode;
// 將授權(quán)碼交給服務(wù)端做SSO
}
}