本文目录一览:
- 1、使用融云 SDK 避坑指南之 iOS13 推送失败
- 2、iOS 13不能用voip,融云微信为什么还能用?
- 3、ios 融云当用户变更时怎么清空好友会话列表
- 4、iOS---融云即时通讯---自定义消息
- 5、iOS ---融云即时通讯---会话界面
- 6、网易云信是什么?
使用融云 SDK 避坑指南之 iOS13 推送失败
融云 SDK 支持苹果推送,当我使用的设备升级到 iOS13 及以上时,推送突然就不能用了😫,经过半天的排查,终于找到了问题,原来是 deviceToken 格式变了,具体可以参考
问题原因:由于 iOS13以后,苹果的 deviceToken 格式变了,但是上传给融云的 deviceToken 处理方式还是使用的老方式,导致了推送无法收到。
处理方法:
想了解更多的关于融云推送的问题,可以去看看他们的文档,写的还是挺详细的,图文都有
融云官网:
iOS 13不能用voip,融云微信为什么还能用?
但是前段时间iOS 12.1系统更新后,有商户不断反馈没有到账推送和语音播报,经过排查初... 现在建议使用和升级的技术方案是 VoIP推送
ios 融云当用户变更时怎么清空好友会话列表
我开始做了一个APP,聊天界面,上面是几个固定的,类似于新浪微博的消息界面,上面是固定的,下面是会话列表
1.自己写一个会话列表继承RCConversationListViewController;
2,设置会话类型;(这里我就不详细说了,融云教学视频很详细,下面才是最重要的,自定义会话列表)
3.出入自己的数据源数据,父类里面有个设置数据源的方法;记住一定要设置conversationModelType的类型为:RC_CONVERSATION_MODEL_TYPE_CUSTOMIZATION(用户自定义的会话显示),然后我设置置顶显示 model.isTop = YES;
[objc] view plain copy
//插入自定义会话model
- (NSMutableArray *)willReloadTableData:(NSMutableArray *)dataSource{
if ([PersonInfo.type isEqualToString:@"STUDY"]) {
_titleArr = @[@"系统通知",@"评论",@"点赞"];
}else if ([PersonInfo.type isEqualToString:@"TEACHER"]){
_titleArr = @[@"系统通知",@"评论",@"点赞",@"访客"];
}
for (int i = 0; i_titleArr.count; i++) {
RCConversationModel *model = [[RCConversationModel alloc]init];
model.conversationModelType = RC_CONVERSATION_MODEL_TYPE_CUSTOMIZATION;
model.conversationTitle = _titleArr[i];
model.isTop = YES;
[dataSource insertObject:model atIndex:i];
}
return dataSource;
}
4.设置cell的高度
[objc] view plain copy
#pragma mark - 设置cell的高度
- (CGFloat)rcConversationListTableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 70;
}
5.关闭cell的左滑删除事件;因为头部几个点击是跳转新的控制器,是固定的,不能删除;
[objc] view plain copy
#pragma mark - 设置cell的删除事件
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
RCConversationModel *model = [self.conversationListDataSource objectAtIndex:indexPath.row];
if(model.conversationModelType == RC_CONVERSATION_MODEL_TYPE_CUSTOMIZATION){
return UITableViewCellEditingStyleNone;
}else{
return UITableViewCellEditingStyleDelete;
}
}
6.修改cell上面字体的字体样式;RCConversationBaseCell里面没有title和content label等控件,所以需要转化一下;转成RCConversationCell;我用的是平方字体;
[objc] view plain copy
#pragma mark - 修改cell样式
- (void)willDisplayConversationTableCell:(RCConversationBaseCell *)cell atIndexPath:(NSIndexPath *)indexPath{
RCConversationModel *model = [self.conversationListDataSource objectAtIndex:indexPath.row];
if(model.conversationModelType != RC_CONVERSATION_MODEL_TYPE_CUSTOMIZATION){
RCConversationCell *RCcell = (RCConversationCell *)cell;
RCcell.conversationTitle.font = [UIFont fontWithName:@"PingFangSC-Light" size:18];
RCcell.messageContentLabel.font = [UIFont fontWithName:@"PingFangSC-Light" size:16];
RCcell.messageCreatedTimeLabel.font = [UIFont fontWithName:@"PingFangSC-Light" size:14];
}
}
7.自定义cell,注意自定义的cell一定要继承于RCConversationBaseCell
[objc] view plain copy
#pragma mark - 自定义cell
- (RCConversationBaseCell *)rcConversationListTableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
RongYunListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RongYunListCell"];
if (!cell) {
cell = [[[NSBundle mainBundle]loadNibNamed:@"RongYunListCell" owner:self options:nil] firstObject];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.ListOneCount.hidden = YES;
}
NSInteger count = 0;
if(indexPath.row _badgeValueArr.count){
count = [_badgeValueArr[indexPath.row] integerValue];
}
if(count0){
cell.ListOneCount.hidden = NO;
cell.ListOneCount.text = [NSString stringWithFormat:@"%ld",count];
}else{
cell.ListOneCount.hidden = YES;
}
RCConversationModel *model = self.conversationListDataSource[indexPath.row];
[cell setRongYunListCellOneUIViewWithModel:model iconName:_iconArr[indexPath.row]];
return cell;
}
8.cell的选中事件
[objc] view plain copy
#pragma mark - cell选中事件
- (void)onSelectedTableRow:(RCConversationModelType)conversationModelType conversationModel:(RCConversationModel *)model atIndexPath:(NSIndexPath *)indexPath{
[self.conversationListTableView deselectRowAtIndexPath:indexPath animated:YES];
if(model.conversationModelType == RC_CONVERSATION_MODEL_TYPE_CUSTOMIZATION){
NSString *cellTitle = model.conversationTitle;
if([cellTitle isEqualToString:@"系统通知"]){
//系统消息
NewsSystemSecondViewController *svc = [[NewsSystemSecondViewController alloc]init];
svc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:svc animated:YES];
}else if ([cellTitle isEqualToString:@"评论"]){
//评论
SystemCommentViewController *svc = [[SystemCommentViewController alloc]init];
svc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:svc animated:YES];
}else if ([cellTitle isEqualToString:@"点赞"]){
//点赞
ClickLinckedViewController *svc = [[ClickLinckedViewController alloc]init];
svc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:svc animated:YES];
}else if ([cellTitle isEqualToString:@"访客"]){
//访客
MyVistorsViewController *svc = [[MyVistorsViewController alloc]init];
svc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:svc animated:YES];
}
}else{
//会话列表
RCConversationViewController *conversationVC = [[RCConversationViewController alloc]init];
conversationVC.hidesBottomBarWhenPushed = YES;
conversationVC.conversationType = model.conversationType;
conversationVC.targetId = model.targetId;
conversationVC.title = [self getUserNameWithUserID:model.targetId];
[self.navigationController pushViewController:conversationVC animated:YES];
}
}
iOS---融云即时通讯---自定义消息
注册消息
注册消息共分为四步。
(1)自定义消息集成自RCMessageContent
(2)遵循RCMessageCoding协议
RCMessageCoding 主要有三个功能:
摘要
(3) 内容摘要协议
协议原型:
RCMessageContentView 主要有一个功能:
设置消息摘要:
开发者在进行完自定义消息类后,需要在 SDK init 之后,注册此自定义消息类。
开发者可根据自己的业务需求是否需要显示用户信息来选择继承消息 Cell。
类名:
1
结构图:
控件需要添加在 baseContentView 上,建议在 baseContentView 上方预留 10
类名:
1
结构图:
控件需要添加在 messageContentView 上,根据需求在画 Cell 视图布局的时候调整 messageContentView 的 frame ,如果是接收方,只需要修改 messageContentView 的 width 和 height ,如果是发送方,需要修改 messageContentView 的 x 、 width 和 height 。
开发者需要在 Cell 的初始化中布局,并重写下面方法来返回 Cell 的 Size 。当显示自定义消息时,必须实现该方法来返回 Cell 的 Size 。
注册消息 Cell
SDK 需要开发者在会话页面注册您定义的消息 Cell 并绑定您的消息类型
①在自定义cell中添加tap点击事件,
②实现tap事件,在tap事件中判断代理是否实现了如下方法,
③调用SDK中的cell点击事件回调
在如上方法中添加自定义cell的点击事件
iOS ---融云即时通讯---会话界面
融云提供了封装好的聊天界面,RCConversationViewController
创建方式如下
属性chatSessionInputBarControl,就是会面界面的控制面板
RCPluginBoardView是控制面板扩展项的view
(1)如果我们需要更改按钮的图片、文字可以调用如下方法修改
(2)扩展功能板的点击回调
融云自定义消息
网易云信是什么?
问题一:网易云信是干嘛用的!?刚下载了看一下,功能不多,很简约!刚进去向易信! 呐,你想了解的网易云信都在这儿
换个悠然的姿势,把他看完吧。
基本信息
姓名:网易云信
生日:2015年10月13日
星座:天秤座
家庭关系
爹:网易(杭州)网络有限公司
妈:网易云信团队
云信介绍
云信是网易公司倾力打造的即时通讯云服务,
开发者通过客户端SDK和云端开放API,
即可在最短时间内获得稳定可靠的IM功能。
服务模式
云信是PaaS服务模式,全面支持Android、iOS、Web、PC多平台。
网易云信优势
01团队IM研发资历成熟
15年专注IM研发
IM解决方案经亿级产品(网易邮箱、网易新闻客户端、网易云音乐等)线上验证
移动端解决方案持续优化5年以
02凝聚网易技术实力
成熟专业运维、云服务团队
全套自研方案
行业顶尖前端技术提供UI组件
03网易存储服务
网易自有亿级产品内部使用多媒体文件存储系统
数据文件系统多重备份,历史消息不丢失
分布式数据库,应用级数据隔离
网易云信的能力
(十八般武艺啊)往下看,详细了解一下~
一、 IM基础功能
IM基础功能即文字、表情、图片、文件、语音、视频、地理位置及通知消息等信息的收发功能,通过接入云信的IM基础功能,开发者已经能完整打造私信、群聊等聊天功能。
聊天方式
单聊:一对一聊天,支持文字、表情、图片、语音、视频、地理位置、通知消息。
群聊:提供普通群 (Normal) 以及高级群 (Advanced) 两种形式的群聊功能,高级群拥有更多的权限操作
普通群群权限操作:创建群、邀请入群、申请入群、踢人、修改群资料、设置管理员、更改群昵称、移交群主、解散群等。
高级群群权限操作:群容量和群数量根据所选服务版本进行扩展。
聊天室:提供无人数上限的聊天室功能,支持聊天室创建、解散、资料编辑、历史消息(最近10条)、抄送等功能。
聊天室管理权限:踢人、禁言、拉黑、设置管理员、取消管理员
聊天功能
已读回执:消息被对方查看后,可获得消息的已读状态。
自定义消息:即消息类型支持自定义,可实现红包、石头剪刀布、阅后即焚等丰富功能。
当前状态:单聊时可获取对方当前正在输入的状态。
消息提醒:新消息提醒功能,支持设置 *** /振动提醒、免打扰时段等,支持对用户设置或关闭消息提醒。
黑名单:可以将用户加入黑名单,拉黑后将不再收到对方发来的任何消息或者请求
信息功能
信息记录
历史信息:云端存储用户最近的历史消息,提供关键字搜索聊天记录的功能。消息存储时长可根据所选服务版本(试用版、标准版和专属私有云)进行扩展。
消息漫游:用户切换到任何设备都可以读取到历史消息,适用于标准版。
离线消息:用户离线后重新上线,可收到离线期间到达的消息,适用于任何服务版本
最近会话:提供最近与用户会话的联系人信息,实现最近联系人列表。
信息托管
消息抄送:将消息数据实时同步给第三方开发者的服务器。支持单聊数据、群聊数据、讨论组数据、个人自定义系统通知、群组自定义系统通知数据的抄送。
好友关系托管:使用云信用户关系以及用户资料托管,提供用户好友关系托管,构建用户通讯录。
用户资料托管:提供用户资料托管功能,第三方 APP 可以选择由云信托管用户资料,也可以自行实现。
优势
稳定可靠: 累计成功发送消息量超过1000亿条,系统架构保证弹性可扩展,并支持接入产品动态扩容
数据安全: 私有精简二进制协议,数据的传输和存储安全可靠
海外访问: 提供海外AWS云主机连通服务,保证海外用户消息收发速度。
二、实时音视频
提供基于网络的......
问题二:网易云信是什么 网易云信怎么样 云信就是一个即时通讯服务 网易提供SDK,如果你要开发及时通讯类的功能就不用完全自己开发,只需要接入云信的SDK接口就可以实现,云信现在在IM服务行业也算是很不错的了。。
问题三:网易云信 骗人的 真的吗
问题四:java 和 网易云信怎样连接 20分 这个你需要 有他们提供的SDK才可以进行扩展的吧
问题五:网易云信的价格怎么样 价格比叮咚云高多了
问题六:谁用网易云信的平台,怎么感觉操作好复杂? 我这也是,操作复杂不说价格还高
问题七:刚看了一下其他的软件,感觉网易云信的价格好贵啊 应该不怎样,其他软件。
问题八:网易有易信,怎么又出网易云信? 大家不要上当,网易云信 就是一个 诈骗集团!
问题九:除了阿里云、网易云信、腾讯云,还有什么别的音视频开发?要性价比高的。。。 AnyChat是一款跨平台的音视频解决方案,面向开发者和企业,提供SDK和多端口接入,价格也比较合理。
问题十:目前新出的网易云信跟融云对比,哪个更好用 如果从稳定性和技术实力看,网易云信应该要靠谱些。不过,初创团队估计资金会紧张,选什么都会尴尬吧。不要道听途说,亲自与各家沟通一下,先尝试用起来,好坏立竿见影。