接入指南
优质
小牛编辑
127浏览
2023-12-01
动图宇宙SDK接入说明
接入SDK,有以下必要步骤:
- 下载与安装
- 获取必要的接入信息
- 开始集成
第一步:下载与安装
手动导入SDK
下载当前最新版本,解压缩后获得: DongtuSDK
, 其中包含SDK和库文件DongtuSDK.framework
及所需的资源文件DongtuSDK.bundle
添加系统库依赖
您除了在工程中导入 SDK 之外,还需要添加libsqlite3.0.tbd。 在build setting中添加 Other Linker Flags: -ObjC
第二步:获取必要的接入信息
开发者将应用与SDK进行对接时,必要接入信息如下:
appId
- 应用的App IDappSecret
- 应用的App Secret
如您暂未获得以上接入信息,可以在此申请
第三步:开始集成
0. 注册AppId&AppSecret
在 AppDelegate
的 -application:didFinishLaunchingWithOptions:
中添加:
// 初始化SDK
[Dongtu initWithAppId:@"your app id" secret:@"your secret"];
如果未正确初始化,在调用SDK功能时会抛出异常。
1. 通过 Dongtu
提供的接口查看 SDK 版本、设置用户
- 查看 SDK 版本
/**
获取 SDK 的版本的方法
@return SDK 的版本
*/
+ (NSString *)version;
- 设置用户
说明:可设置用户id、姓名、电话、邮箱、地址、性别及其他信息
/**
设置app本地用户信息
@param user 用户信息构造的DTUser对象 (详见DTUser.h)
*/
+(void)setUser:(DTUser *)user;
如未正确调用setUser接口,在使用SDK功能时会抛出异常。
3. 使用联想功能和GIF搜索模块
设置SDK代理
使用联想功能和GIF搜索模块前需要设置代理,以接收SDK的事件
[Dongtu sharedInstance].delegate = self;
配置联想功能
调用联想接口,SDK会根据input中的内容实时的联想出表情,并显示在attachedView上方。
/**
* @param attachedView 联想UI放置在配置的attachedView上面
* @param input 联想根据配置的input输入框中的内容获取表情
*/
- (void)shouldShowSearchPopupAboveView:(nonnull UIView *)attachedView
withInput:(nonnull UIResponder <UITextInput> *)input;
触发GIF搜索
需要搜素gif图片时,可调用以下的接口,然后在弹出的view中进行操作。
- (void)triggerSearchGifWindow;
实现SDK代理方法
//点击了联想UI和GIF UI中的表情图片代理
//可以在该代理方法中拿到点击的表情对象
- (void)didSelectGif:(DTGif *)gif {
}
4. 表情显示:通过DTImageView
展示 DTGif
展示 DTGif
/**
设置Gif图片数据函数
@param urlString 图片url
@param gifId 图片id
*/
- (void)setImageWithDTUrl:(NSString * _Nonnull)urlString gifId:(NSString * _Nonnull)gifId;
/**
设置Gif图片数据函数
@param urlString 图片url
@param gifId 图片id
@param handler 处理成功回调
*/
- (void)setImageWithDTUrl:(NSString * _Nonnull)urlString gifId:(NSString * _Nonnull)gifId completHandler:(void (^_Nullable)(BOOL success))handler;
5. IM 消息发送、接收并解析展示示例 (以环信为例)
发送DTGIf
消息
-(void)sendGifMessage:(DTGif *)gif {
//1.DTGif的text字段作为发送的文字内容
NSString *sendStr = [@"[" stringByAppendingFormat:@"%@]", gif.text];
//2.构造消息的扩展信息
NSDictionary *msgData = @{@"sticker_url": gif.mainImage, //图片url
@"is_gif": (gif.isAnimated ? @"1" : @"0"), //图片是否是动图
@"data_id": gif.imageId, //图片id
@"w": @((float)gif.size.width), //图片宽度
@"h": @((float)gif.size.height)}; //图片高度
NSDictionary *extDic = @{@"txt_msgType":TEXT_MESG_WEB_TYPE, //配置自定义消息类型
@"msg_data":msgData}; //消息扩展
//3.构造消息
EMMessage *message = [EaseSDKHelper sendTextMessage:sendStr
to:self.conversation.conversationId
messageType:[self _messageTypeFromConversationType]
messageExt:extDic];
//4.发送消息
[self _sendMessage:message];
}
解析DTGif
消息 & 展示 DTGif
消息
//1.解析消息扩展,提取图片url和id
NSDictionary *extDic = messageModel.ext;
if (extDic != nil && [extDic[@"txt_msgType"] isEqualToString:@"webtype"]) {
NSDictionary *msgData = extDic[@"msg_data"];
if (msgData) {
NSString *gifUrl = msgData[@"sticker_url"];
NSString *gifId = msgData[@"data_id"];
float height = [msgData[@"h"] floatValue];
float width = [msgData[@"w"] floatValue];
}
}
//2.展示
//计算图片展示size
CGSize imageSize = [DTImageView sizeForImageSize:CGSizeMake(width, height)
imgMaxSize:CGSizeMake(200, 150)];
//3.展示消息
imageView = [[DTImageView alloc] init];
[imageView setImageWithDTUrl:gifUrl gifId:gifId];
6. UI定制
SDK通过DTTheme提供一定程度的UI定制。具体参考类说明DTTheme。