faq:im:ios

1、环信管理后台有的用户显示证书名称有的不显示证书名称?

2、iOS没有通知栏提示?

通知栏分本地通知和apns推送通知

2).如果不是本地通知,app退到后台超过150秒左右,接收消息没有通知栏提示的话,这个情况属于apns推送。

如果配置过了apns推送,那么在初始化SDK方法之后调用下这个方法试下

-(void)applicationDidEnterBackground:(UIApplication*)application{[[EMClientsharedClient]applicationDidEnterBackground:application];}-(void)applicationWillEnterForeground:(UIApplication*)application{[[EMClientsharedClient]applicationWillEnterForeground:application];}3、iOS本地通知栏如何展示?

本地通知栏的显示属于本地自己设置的,这个可以参考下环信demo的做法,判断apns推送通知栏是不是显示详情的,是的话,那就将本地通知栏也显示成‘昵称:消息内容’,如果是默认的就显示‘您有一条新消息’。

4、APNS推送收不到怎么办?

5、环信推送的角标怎么和极光推送的角标合并?

可以通过NotificationServiceExtension功能实现。(此方案需要极光那边也支持mutable-content)

6、离线推送角标数跳跃

问:

杀死app后测试离线推送,角标计数有时候会不准。

例如:我们连续发了4条消息,但是APP的角标数有时候会从4闪一下变成2。;还有时候比如现在发了8条消息。然后APP的角标是4但是当我们再发送一条消息,角标又变成9了。

答:

您好,发送第一条消息,这条消息携带的角标数是1,发送第二条消息,这条消息携带的角标数是2,发送第n条消息,这条消息携带的角标数是n,有可能是某条消息的离线推送有些延迟,导致角标数跳跃。

7、iOS推送通知栏如何显示消息详情?

1、从环信服务器上下载消息中的附件没有后缀怎么办?

附件类型的消息(图片,语音,视频,文件消息等)发送到环信服务器后是不带后缀的,这个可以在构建消息的时候,给附件消息命名时加上后缀名

这样接收消息方在接收到消息时,可以从消息的body中通过displayName拿到名称就可以知道附件的格式,地理位置消息的话,可以在发送消息的时候,给消息的ext里面加个参加把附件名称和格式带上,这样接收消息方通过解析消息的ext也可以知道附件消息的类型。

2、环信id是什么?

在注册环信id时,建议不要使用有序的id进行注册,防止其他人知道注册id的顺序,恶意发送大量的垃圾消息。

社区版的appkey只能注册100个环信id,企业版没有注册的限制。

3、开启消息漫游之后为什么不可以进行删除消息的操作了?

删除聊天记录是删除本地数据库的,不是环信服务器的,开通漫游消息后,如果调用的是从环信服务器获取历史消息的api(asyncFetchHistoryMessagesFromServer),就会出现这种情况。您可以自己记录下删除了哪条消息,然后在加载历史消息的时候遍历过滤不展示;或者使用从本地数据库获取历史消息的api

4、获取会话列表为空情况有以下几种:

1)可能是本地数据库中没有会话或者将会话都删除掉了

5)卸载app,因为会话列表是存设备本地数据库的,如果卸载app本地数据库文件会被清理掉,导致会话列表获取不到

6、用户个人信息如何存储获取?

环信这边是不涉及用户个人信息的,所以获取好友列表的方法返回的都是环信id,用户的个人信息可以在自己服务器与环信id绑定存储维护,知道环信id就可以到自己服务器下载这个环信id对应的用户信息(注意在注册环信id时传的昵称并不是个人信息的昵称,那个是在设置显示推送通知栏详情时,显示的推送昵称)。

7、如何自己实现漫游消息功能?

根据自己服务器端的返回给app端的消息内容,在app端创建会话,插入消息,以难度大的图片消息为例

插入图片消息示例代码:

聊天页面的工具栏是可以扩展的,UI代码都是开源的,需要自己看下代码进行修改,在EMChatBar.m类中

9、iOS如何将消息的扩展内容自定义cell?

向会话中插入一条文本消息或者发送一条消息,将需要展示到cell上的内容加到消息的ext中。可以给插入消息的ext加个字段标识,然后根据这个标识显示自己自定义的cell展示,大致就是这个实现思路。

以发送消息为例的参考demo:

10、iOS本地通知栏的展示

本地通知栏的显示属于本地自己设置的,这个可以参考下环信demo的做法,在接收消息的回调中,判断apns推送通知栏是不是显示详情的,是的话,那就将本地通知栏也显示成‘昵称:消息内容’,如果是默认的就显示‘您有一条新消息’。

EMRemindManager.m

-(void)remindMessage:(EMMessage*)aMessage方法中

11、群组管理员将用户禁言后,用户仍然可以在群内发消息?

12、iOS端关于环信账号离线常见的几种情况:

2.app退到后台超过150秒左右

前提是调用将app进入后台的状态传给环信SDK:

-void)applicationDidEnterBackground:(UIApplication*)application{[[EMClientsharedClient]applicationDidEnterBackground:application];}app返回前台时,SDK自动重连,需要将app返回前台的状态传给环信SDK

-(void)applicationWillEnterForeground:(UIApplication*)application{[[EMClientsharedClient]applicationWillEnterForeground:application];}3.主动kill掉app,或者app在后台挂起被系统kill掉

4.断网或者网络不好的情况下,长连接断开,当网络恢复时SDK会自动重连

1、3没监听

1、报错信息:“Reason:imagenotfound”

解决方案:在TARGETS→General→Frameworks,Libraries,andEmbeddedContent中添加Hyphenate.framework依赖库,且依赖库的Status必须是Embed&Sign

2、报错信息:

解决方案:删掉重新添加试一下。添加时先粘贴到项目的finder文件内,再从finder往项目中拖。

3、报错信息:

解决方案:把plugin文件夹删掉(删掉不会影响到功能)。

4、xcode12.3运行报错,报错信息:

解决方案:打开Xcode,左上方点击File—>WorkspaceSettings—>将ShardWorkspaceSettings:中的NewBuildSystem(Default)修改成LegacyBuildSystem,点击done,再试下。

5、报错信息:i386

解决方案:

1、报错信息:

解决方案:打包时取消勾选bitcode

1.视频会议demo下载下来podfile里面的Hyphenate是注释的,需要先打开

2.视频会议demo只支持3.6.6以上版本的sdk。您在podinstall前先podsearchHyphenate看下能不能搜到3.6.6版本,如果搜不到,可以执行下podrepoupdate更新本地cocoapods的spec资源配置信息后再试下,如果还搜不到,那么需要您自己再看下是什么原因。

1、podinstall执行完成后运行会报错,报错信息:

打开xcode,最上方点击File—>WorkspaceSettings—>将ShardWorkspaceSettings:中的NewBuildSystem(Default)修改成LegacyBuildSystem,点击done,最后运行项目。

3、xcode12模拟器运行报错,报错信息:

BuildSettings里最下面的VALID_ARCHS,添加上x86_64。

1、个人消息免打扰

2、接收群组消息但不提示(消息免打扰)

//调用这个方法后sdk会自动更新本地的“屏蔽了推送的群组ID列表”[[EMClientsharedClient]getPushNotificationOptionsFromServerWithCompletion:^(EMPushOptions*aOptions,EMError*aError){if(!aError){NSLog(@"从服务器获取推送属性成功");}else{NSLog(@"从服务器获取推送属性失败的原因---%@",aError.errorDescription);}}];(3)在收到消息的代理方法中(-(void)messagesDidReceive:(NSArray*)aMessages),判断如果app处于后台活跃状态(正常是需要发送本地通知,提醒用户有消息的),就调用下面这个方法取到屏蔽了离线推送的群组ID列表,判断下消息是否来自于被屏蔽了离线推送的群组,是的话就不发本地通知。

NSArray*igGroupIds=[[EMClientsharedClient].groupManagergetGroupsWithoutPushNotification:nil];3、群主撤回群成员的消息

群主进行撤回操作时,给所有群成员发送一条cmd消息,cmd添加扩展,把消息id携带过去,群成员收到这条cmd消息时,解析出消息id,然后从本地删除这条消息,然后刷新UI。

注:只能删除本地数据库的,无法删除环信服务器端的。如果使用漫游功能从环信服务器端获取历史消息,还是能把撤回的那条消息拉取下来,这时候还要过滤下再删掉。

删除消息:

4、消息提示音(消息提醒、震动、响铃)

在线消息:可以全局(在根控制器或者AppDelegate里)监听收到消息的代理方法(messagesDidReceive),在这个方法里播放响铃和震动。

5、iOS在线与离线未读消息数累加

在线未读消息数与离线消息数累加的功能,可以按照下面的方案实现

(1)先新建一个NotificationServiceExtension的Targets

(2)主工程打开Remotenotifications权限

(3)两个Targets都打开AppGroups,并添加共享沙盒

(4)主工程将当前本地未读消息数动态存到共享沙盒

(5)在NotificationService中取出共享沙盒的角标数,与收到的APNs角标数累加重置。

6、不是好友不让发消息

7、用环信的消息做给自己的用户全量推送功能

如果想要环信的消息来做给自己用户全量推送功能,还不想让客户端用户看到这条会话,那么可以用环信服务器端rest接口批量发送消息实现,可以使用一个或者几个固定的环信id作为from批量给自己的用户发送消息(推送消息),然后客户端在取会话列表的时候,发现会话id如果是服务器端用于批量发消息的环信id,那么就将这个会话删除掉即可。

8、iOSEaseUI如何自定义表情

9、iOSEaseUI聊天页面怎么显示群组的昵称头像

因为环信这边是不涉及用户个人信息的,所以通过环信id是获取不到用户昵称头像的,用户的个人信息可以在自己服务器与环信id绑定存储维护,知道环信id就可以到自己服务器下载这个环信id对应的用户信息(注意在注册环信id时传的昵称并不是个人信息的昵称,那个是在设置显示推送通知栏详情时,显示的推送昵称)。

环信UI上的处理,如果使用的是EaseUI的话,我建议是在EaseBaseMessageCell.m类,-(void)setModel:(id)model方法中,通过self.model.message.chatType判断出来是群组类型消息的话,在取到消息的from就是在群内发送消息的环信id,再根据环信id到自己服务器上取到用户的昵称,头像,在赋值给_nameLabel.text和self.avatarView(注意单聊和群聊显示昵称,头像的逻辑要区分开)

10、iOS漫游消息能否拉取会话列表?

这个漫游只能是拉取聊天记录,不能拉取聊天会话列表。

//创建会话EMConversation*conversation=[[EMClientsharedClient].chatManagergetConversation:@"username"type:EMConversationTypeChatcreateIfNotExist:YES];//漫游消息,漫游下来的消息会自动添加到会话中[EMClient.sharedClient.chatManagerasyncFetchHistoryMessagesFromServer:@"username"conversationType:EMConversationTypeChatstartMessageId:nilpageSize:5completion:^(EMCursorResult*aResult,EMError*aError){if(!aError){}else{}}];11、iOS新版UI如何自定义cell

12、用户撤回消息,实时消息回调会怎样处理?

撤回消息的事件是没有回调的,可以这样,如果想通过实时消息回调知道哪条消息是撤回的消息,那么在客户端撤回消息后,在发条cmd消息,cmd消息的ext里面加上撤回消息的标识然后在加上撤回消息的消息id,这样这条cmd消息也会回调到你们服务器上,这样就可以知道哪条消息是撤回消息了

13、如何知道对方的环信id是否在线

1、新版UI,点击群组语音消息后,未读红点不消失

if(model.emModel.chatType==EMChatTypeChat){self.statusView.hidden=model.emModel.isReadAcked;}else{self.statusView.hidden=[[model.emModel.extobjectForKey:@"isPlayed"]boolValue];}2、iOS3.6.0demo,聊天页面弹出的工具栏遮挡消息怎么处理?

改成这样

[UIViewanimateWithDuration:animationTimeanimations:animationcompletion:^(BOOLfinished){if(self.dataArray.count>0){[self.tableViewreloadData];NSIndexPath*lastIndex=[NSIndexPathindexPathForRow:self.dataArray.count-1inSection:0];[self.tableViewscrollToRowAtIndexPath:lastIndexatScrollPosition:UITableViewScrollPositionBottomanimated:YES];}}];3、聊天页面发送过消息后,第一次刷新会出现重复的数据

按照以下来修改:

参考截图添加代码:

5、在聊天页面点击查看过图片、视频消息后,回到会话列表页,再收到消息,未读消息数就不准确了

由于聊天页面(EMChatViewController)的block里使用了强引用self,造成了循环引用,导致退出聊天页面回到会话列表页面(EMConversationsViewController)时,聊天页面的dealloc方法没有执行,所以聊天页面的代理没有移除([[EMClientsharedClient].chatManagerremoveDelegate:self];);然后,用户在会话列表页面收到消息时,聊天页面的messagesDidReceive执行了,这个方法里将消息置为已读了,所以,导致会话列表页不显示未读消息数了。

按照截图修改:

6、汉字转拼音的工具类(EMChineseToPinyin)对各别汉字不识别

(1)拼音为er的汉字,例如“二”、“儿”

将if(nCode>=/*DISABLESCODE*/(2288)&&nCode2231)

改为if(nCode>=2288&&nCode2301)

(2)汉字“妗”

添加代码case7001:

7、EaseUI收到web端发来的视频消息显示“获取缩略图失败”,点击无法播放

THE END
1.古月居在ROS与MQTT的集成中,合理配置QoS不仅可以优化通信效率,还能满足不同场景下的实时性和可靠性需求。本文将聚焦于MQTT的QoS机制,分析其在ROS中的应用策略,包括如何设置QoS等级、在不同的网络环境中进行调整,以及结合ROS2的QoS机制实现稳定的跨平台通信。 原理介绍 基本概念:MQTT的QoS机制 MQTT的QoS机制定义了消息传输的https://www.guyuehome.com/detail?id=1866304996922966017
2.第十问:TCP协议是怎么做到可靠性的?它的可靠指的是到哪一层的可靠简介:TCP(传输控制协议)是一种面向连接的传输层协议,其核心特性是可靠性。TCP通过数据分片与排序、确认机制(ACK)、超时重传、流量控制、拥塞控制、校验和等机制,确保数据从发送方到接收方的完整性和有序性。这些机制共同作用,使TCP能够在复杂网络环境中实现稳定的数据传输。TCP的可靠性主要指的是从传输层到传输层的https://developer.aliyun.com/article/1645646
3.了解数据的传输wx6734935822ea1的技术博客以太网帧中还包含源和目的MAC地址,分别代表发送者的MAC地址和接收者的MAC地址,此外还有帧校验序列字段,用于检验传输过程中帧的完整性 Ethernet II帧格式 Ethernet II 字段说明如下: DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。 https://blog.51cto.com/u_17135820/12851750
4.流水线传输协议;回退N步GBN(滑动窗口协议);选择重传SR,流水线技术是解决这种特殊性能问题的一个非常简单的方法:不使用停等方式运行,允许发送端发送多个分组而无需等待确认。https://cloud.tencent.com/developer/article/2477374
5.机器之间的信息论与人机之间的信息论算法计算机人机交互二者之间的区别在于: 焦点不同: 机器之间的信息论主要关注信息的传递、编码、解码、传输过程中的效率、可靠性等。 人机之间的信息论不仅关注信息的传递,还涉及信息的理解、语境分析、情感识别以及机器对人类意图的响应等复杂内容。 复杂性不同: 机器之间的信息论是相对“抽象”的,机器通常通过标准化的协议和方法来传https://www.163.com/dy/article/JJUR2IOP05566W3H.html
6.聊天在线与离线传输文件qq转离线发送和转在线发送有区别吗文章浏览阅读623次,点赞12次,收藏17次。微信只支持一种文件发送方式,就是发送方把文件发到文件存储服务,然后接收方从文件服务器进行下载。然而,在古老的QQ软件,是支持在线传输和离线传输(微信模式)。_qq转离线发送和转在线发送有区别吗https://blog.csdn.net/littleschemer/article/details/144161451
7.腾讯QQ会员2013年7月,QQ会员全新升级,将特权打通PC和手机,向QQ会员一体化迈出了跨越性的一步。截止到目前,QQ会员已经囊括了QQ、游戏、生活、购物四大领域的近80项精彩特权,开通会员人数超过3000万。目前腾讯已经发布QQ超级会员SVIP,价格为每月20/元。超级会员将专享尊贵SVIP图标铭牌、一键@全体群成员、好友列表出场动画等特权,https://baike.sogou.com/v57414345.htm
8.QQ密技68招(超强)QQ技巧QQ专栏这些备份数据一般都不大,你完全可以压缩后把它作为附件发送到E-mail里,下次在别处使用QQ时再下载过来,然后通过“消息管理器”把消息数据导入或者用目录文件覆盖同名目录(注意之前要先登录一次,退出后覆盖),这样就大功告成,你的数据资料又奇迹般地回来了!https://www.jb51.net/qq/15144_all.html
9.如何qq转离线发送如何qq转离线发送 相关视频/文章qq邮箱怎么发离线 2024/10/4 qq文件如何移到微信发送 2024/10/4 qq文件在线和离线发送的区别 2024/10/4 转离线发送是什么意思 2024/10/4 qq怎样改成离线请留言 2024/10/4 qq如何变成离线请留言 2024/10/4 https://m.51dongshi.com/sdhzgjztfsdhbvdh/
10.OneXC评测(全文)HTCOneXC手机Android频道1与HTC One X的区别尽管W网的HTC One X很强大,但部分电信用户相信一直在等待其C网的定制产品。而国外的HTC EVO 4G LTE已经上马,但我们还没有见到国行C网One X的影子。现在这款支持CDMA2000高速网络的名为HTC One XC的手机终于传递到了我们手中,它换用了高通骁龙Snapdragon S4芯片组,外形和国外Sprint定制的HThttps://mobile.zol.com.cn/308/3084870_all.html
11.MySQL八股文连环45问,你能坚持第几问?原子性(atomicity,或称不可分割性): 事务的所有操作要么全部成功,要么全部回滚。 一致性(consistency): 总是从一个一致性的状态转换到另一个一致性的状态 隔离性(isolation): 多个事务并发执行时,一个事务的执行不应影响其他事务的执行 持久性(durability): 已被提交的事务对数据库的修改应该永久保存在数据库中。https://maimai.cn/article/detail?fid=1726152504&efid=1uJkadklQf1mcjrJqbhZKg
12.无法发送离线文件,腾讯服务器故障,可转在线发送#腾讯#腾讯服务器无法发送离线文件,腾讯服务器故障,可转在线发送#腾讯#腾讯服务器故障 - 不狠站不稳于20220714发布在抖音,已经收获了35个喜欢,来抖音,记录美好生活!https://m.douyin.com/share/video/7120062800889744677
13.USB转CAN模块增加GND和PE接口,在环境干扰比较严重,干扰总线数据时接上可提高稳定性。 产品驱动通过微软数字签名认证,可以在win 98/xp/2000/2003/7/8 等32/64位操作系统上使用。 即插即用,适合现场调试分析,检测网络状态。 ECAN TOOLS软件主要功能概述: ECAN Tools软件是我公司自主开发的调试软件,通过软件可以快速进行CAN总线数http://www.gcanbox.com/fsd/canzxwg/132.html
14.腾讯smtp代理发送邮件时,报java.io.IOException:535Error错误java web工程中使用腾讯的smtp代理做为邮件转发服务器,发送邮件时,报如下错误: java.io.IOException: 535 Error: ê1ó?êúè¨μ£?ê?é?′: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256 解决办法: 参数说明链接,按照http://www.blogjava.net/anchor110/articles/433325.html
15.肇庆用友U8+V15.0的行业插件后续适配发版,以《U8+V15.0行业插件发先安装U8后安装CAD的用户,请在U8安装目录:C:\u8soft\3rdPrograms(磁盘盘符根据U8安装盘符调整)下执行“兼容性处理.exe”文件,用于解决安装CAD后部分操作系统文件注册引用冲突,导致U8无法正常使用的问题。先安装CAD后安装U8不会存在此问题,可正常使用。 四、主要功能变化 https://www.ufida168.com/case_detail/2782.html
16.ArkTS里的数据类型转换方法有哪些?和TS是一致的吗USE_BLUETOOTH 和 ACCESS_BLUETOOTH的区别是什么 蜂窝通信(Telephony) 如何判断蜂窝信号强度 如何发送短信 基础功能 基础服务(Basics Service) 如何获取系统时间戳 使用zip模块解压文件,解压接口返回解压成功,进入设备查看解压路径未找到解压后的文件 HarmonyOS应用的安全性如何?是否可能被逆向分析? HAP包中的https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkts-65-V5
17.质检培训完整操作指南针对自定义添加的质检标准,如果是有规律可循的标准,建议选择规则检出,然后把规则配起来,规则支持买家咨询商品/买家咨询时间/买家消息内容/客服消息发送位置/是否下单/客服回复行为/等多条件。 设置自定义规则检出后,满足规则条件的会话会自动打上扣分项或加分项的标签。 https://www.360doc.cn/article/27880450_1075329921.html
18.软件设计总结报告6篇(全文)客户端方面:区别于类似的大多数即时聊天工具的消息传送机制(即向服务器发送消息经服务器转发),我们利用了典型的p2p(点对点)机制,当好友聊天时,服务器避免了接收和转发消息的负荷,减少了线程数量,既减轻了服务器压力同时又提高了好友间消息传送的速度和质量。 https://www.99xueshu.com/w/file1x8vflnn.html
19.360安全浏览器(手机/Pad版)5、下载流程优化,一键下载、离线下载最爽快的下载体验 6、UI及交互细节优化,使用更方便 [2013-05-11] 360安全浏览器(安卓版) 发布V4.5版 1、国内首家实现电脑与手机互通的浏览器,精彩网页、常用网址一键发送 2、海量精品小说免费下载,让您随时随地轻松阅读 3、完善体验细节,修复BUG,提高稳定性 [2013-04-24] https://mse.360.cn/update.html
20.新型稀土配合物转光剂及转光棚膜发布人:卫慧波离线 发送消息 本项目开发的高效、稳定的萘啶类稀土配合物转光剂材料,发光效率可达90%以上,且光稳定性出色,户外老化半衰期可达数年,另外,还改进了该类材料的生产工艺,关键步骤收率达到90%以上,产品成本大幅度降低。添加0.2%转光剂的棚膜能将紫外线转化为利于农作物生长的红光,不仅可以增产、提高作物品https://jlzx.jspc.org.cn/abutment/technologyachievementdetail?id=96402
21.线路传输(精选十篇)根据电力系统的稳定性要求,提高线路的输送能力可从提高电压等级、减小线路电抗和缩小系统间功率夹角等方面采取措施.随着FATCS技术在电力系统中的广泛应用,串联电容补偿器和并联静止无功补偿器等设备被装设于线路动态补偿无功功率及提高系统稳定性和线路输送容量。在计算交流输电线路的输送能力时,国内外研究人员和电力规划部https://www.360wenmi.com/f/cnkeywj03jpd.html