全链路iOS授权说明
一、获取API Key
前往DUI控制台,进入产品详情页面,在授权管理页面中点击【申请API Key】。在如下弹窗中填写名称和Bundle ID,点击确定完成授权配置,获取API Key。
在SDK初始化时,可以设置DDSManagerDelegate 来监听授权的情况。
授权过程中可能会有0-N次onAuthFailed的回调,直至onAuthSuccess为止。
采用API Key授权,在SDK初始化时,直接将授权类型(profile)和API Key传入SDK。
二、初始化SDK
1)使用以下方法来初始化SDK。
初始化
//设置音频策略
- (void)setAudioConfig{
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
}
//初始化DDSManager
- (void)initDDSManager{
NSMutableDictionary *paramDic = [[NSMutableDictionary alloc] init];
[paramDic setObject:@"xxx" forKey:K_PRODUCT_ID];
[paramDic setObject:@"prod" forKey:K_ALIAS_KEY];
[paramDic setObject:@"usergroup" forKey:K_USER_ID];
[paramDic setObject:@"2f0d470ac76d319fcc4a1d777bf65e08.zip" forKey:K_DUICORE_ZIP];
[paramDic setObject:@"product.zip" forKey:K_CUSTOM_ZIP];
//授权
[paramDic setObject:@"profile" forKey:K_AUTH_TYPE];
[paramDic setObject:@"xxxxxxxx" forKey:K_API_KEY];//API Key
[paramDic setObject:@"xxxxxxxx" forKey:K_PRODUCT_KEY];//Product Key(产品授权管理页面授权列表下获取)
[paramDic setObject:@"xxxxxxxx" forKey:K_PRODUCT_SECRET];//Product Secret(产品授权管理页面授权列表下获取)
DDSManager *manager = [DDSManager shareInstance];
[manager startWithdelegate:self DDSConfig:paramDic];
}
//完成回调
-(void)onInitComplete:(BOOL)isFull {
if(isFull){
NSLog(@"onInitComplete DUI init");
//使用H5
dispatch_async(dispatch_get_main_queue(), ^{
NSString *path = [[DDSManager shareInstance] getValidH5Path];
url = [[NSURL alloc] initWithString:path];
self.request = [[NSURLRequest alloc] initWithURL:url];
self.web.delegate = self;
self.web.allowsInlineMediaPlayback = YES;
self.web.mediaPlaybackRequiresUserAction = NO;
[self.web loadRequest:self.request];
});
}
else{
NSLog(@"DUI init faied");
}
}
//授权回调
-(void)onAuthSuccess{
NSLog(@"onAuthSuccess is successed");
//开唤醒
[[DDSManager shareInstance] enableWakeup];
}
-(void)onAuthFailed:(int)what Error:(NSString*)error{
//授权失败,可以重新调用授权接口
[[DDSManager shareInstance] startAuth];
NSLog(@" onAuthFailed is failed");
}
在收到 onInitComplete 回调之后,就可以使用DDS来完成对应的操作。
isFull参数如果为false, 则表示不完全初始化,缺失资源包;如果为true,则表示完全初始化,所有功能就绪。
SDK完全初始化(isFull = true)表示所有的功能节点都可用。
当调用[[DDSManager shareInstance] stop] 之后,之前注册的observers会失效,再次[manager startWithdelagate:self DDSConfig:paramDic]后,您需要对之前的observers重新注册。
2)使用以下方法来释放SDK:
释放SDK
[[DDSManager shareInstance] stop];
更多关于SDK集成操作请前往文档iOS SDK集成。