IOS 接闲聊SDK登录和分享
由于公司需要,就接了闲聊的SDK,网上看了哈,很少关于闲聊的,我就在这里简单说说流程和他里面的坑吧。
一.注册闲聊账号
我觉得这个就没必要细说了,去闲聊官网,注册应用,拿到APPID。这些和微信基本一样。
二.下载闲聊SDK
这个和微信也是一样的,参考微信。
三.xcode工程配置和代码的编写
1.将下载好的SDK,还有两个.h文件放到xcode文件夹里面,位置随意。
2.配置白名单,在info里面有个UrlType,点击+号,第一个参数随意,第二个参数就很关键了,意味着点击闲聊登录,闲聊能否回调起你的APP,他的官方文档是这么写的@"xianliao123456789",emmm这个我就搞了很久,被他误导了,应该这么写 xianliao + APPID,不需要@也不需要"",唉,难受。
3.在info.plist里面需要的LSApplicationQesueriSchmes加个string类型的"xianliao";
4.在你的APPdelegate里面的didFinishLaunchingWithOptions函数里面为你的应用注册上APPID
[SugramApiManager registerApp:XL_AppID];大概就是这个样子;
5.在appAPPdelegate里面的这两个hans函数加上这几句代码
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:
(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([SugramApiManager handleOpenURL:url]) {
return YES;
}
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
if ([SugramApiManager handleOpenURL:url]) {
return YES;
}
return true;
}
6.然后就可以写登录代码了
当然,你需要判断用户是否安装了闲聊
[SugramApiManager isInstallSugram];就这句
SugramApiManager loginState:nil fininshBlock:^(SugramLoginCallBackType
callBackType, NSString *code, NSString *state) {
在这里面就可以获得code,有code了就可以去拿token,然后再去换取用户信息,这些和微信就很像了。就不说了
}];
7.闲聊分享
7.1分享纯文字
if ([SugramApiManager isInstallSugram]) {
SugramShareTextObject *textObject = [[SugramShareTextObject alloc] init];
// textObject.title = @"title";
textObject.text = @"分享的内容";
//就这个函数就可以调起分享界面
[SugramApiManager share:textObject fininshBlock:^(SugramShareCallBackType callBackType) {
NSLog(@"callBackType:%ld", (long)callBackType);
}];
}
7.2分享图片
if ([SugramApiManager isInstallSugram]) {
SugramShareImageObject *imageObject = [[SugramShareImageObject alloc] init];
imageObject.imageData = [self imageData];
[SugramApiManager share:imageObject fininshBlock:^(SugramShareCallBackType callBackType) {
NSLog(@"callBackType:%ld", (long)callBackType);
}];
}
//这个是为了得到NSDate
- (NSData *)imageData {
return [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"logo_1024x1024" ofType:@"png"]];
}
7.3分享链接
if([SugramApiManager isInstallSugram]) {
SugramShareGameObject *game = [[SugramShareGameObject alloc] init];
game.roomToken = @"3123123123123123";//随意填
game.roomId = @"12312312";//随意填
game.title = @"游戏标题";
game.text = @"游戏文本";
game.imageUrl = @"https://img.alicdn.com/tps/TB1ADGXPXXXXXcTapXXXXXXXXXX-520-280.jpg";//这个url是个坑啊,如果想要是你在闲聊开放平台上注册的应用Icon图片,就直接填@"";这样就好了
[SugramApiManager share:game fininshBlock:^(SugramShareCallBackType callBackType) {
NSLog(@"callBackType:%ld", (long)callBackType);
}];
}
8.总结一下,坑的地方
8.1 就是白名单。。。官方文档上是写的@"xianliao123456789",然而只需要写 xianliao123456789 就好了,这就是点击了授权,没有回到APP的原因
8.2分享链接里面的那个ImageUrl,不需要就填个@""这个吧。不然nabu拿不到图片的。
8.3IPhone6貌似是获取不到Url参数的,不知道为什么。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)