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.微信文件传输助手使用指南:快速方便的文件传输工具手机命令提示符首先,在手机上打开文件传输助手,点击“发送文件”按钮。选择你想要发送的文件,点击“发送”。然后在电脑上打开微信,进入文件传输助手的对话框,你会看到刚刚发送的文件。 从电脑传输文件到手机 在电脑上打开微信,进入文件传输助手的对话框,点击“添加文件”。选择你想要传输的文件,点击“发送”,www.milkchat.cn,。然后https://www.163.com/dy/article/JJFVDGF40556AWQA.html
2.5.4数据传输功能(data关于数据透传,简单理解就是传输通道(传输链路层)不会修改传输的数据内容,仅负责从发送端传输到接收端。但是传输的过程中,数据在链路上传递是基于链路本身。如果链路数据加密,通过该透传通道注入到链路上的数据也同样会加密传输,到达目的端会随着链路数据一起解析出来。此处的DJI SDK中的数据传输功能,是基于DJI无人机、https://sdk-forum.dji.net/hc/zh-cn/articles/5496379768345
3.数据库数据迁移与同步方案深度探索天翼云开发者社区离线迁移:离线迁移通常在系统停机或业务低峰期进行,数据在迁移过程中无法被访问或修改。这种迁移方式简单直接,但会对业务连续性造成一定影响。 在线迁移:在线迁移允许在数据迁移过程中继续访问和修改数据。这通常通过增量迁移、双写等机制实现,以最小化对业务的影响。在线迁移技术复杂,但能够确保业务连续性。 https://www.ctyun.cn/developer/article/624406507151429
4.QQ中的4G在线标志,技术原理与含义解析五金交电摘要:,,本文探讨了QQ上4G在线的含义及其技术原理。4G在线是QQ状态的一种显示,表示用户当前使用的设备正在通过4G网络连接到QQ。背后的技术原理涉及到移动网络的演进和QQ软件的功能设计。通过了解4G网络的高速数据http://xjxygt.cn/post/15467.html
5.聊天在线与离线传输文件qq转离线发送和转在线发送有区别吗文章浏览阅读623次,点赞12次,收藏17次。微信只支持一种文件发送方式,就是发送方把文件发到文件存储服务,然后接收方从文件服务器进行下载。然而,在古老的QQ软件,是支持在线传输和离线传输(微信模式)。_qq转离线发送和转在线发送有区别吗https://blog.csdn.net/littleschemer/article/details/144161451
6.如何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/
7.转离线发送是什么意思(qq转离线发送是什么意思)爱问知识人以QQ为例,转离线发送是表示对方不在线,文件暂存在服务器,等对方上线就可以从服务器里提取你发的文件https://iask.sina.com.cn/b/newqpiPuiAqN81.html
8.质检培训完整操作指南针对自定义添加的质检标准,如果是有规律可循的标准,建议选择规则检出,然后把规则配起来,规则支持买家咨询商品/买家咨询时间/买家消息内容/客服消息发送位置/是否下单/客服回复行为/等多条件。 设置自定义规则检出后,满足规则条件的会话会自动打上扣分项或加分项的标签。 https://www.360doc.cn/article/27880450_1075329921.html
9.MCGS威纶触摸屏常用技术问题29、 客户做好程序后离线模拟时好用,但是实际同PLC连接应用时就不好用是为什么? 答:离线模拟的时候只是看画面的布局效果等等,不是实际的跟PLC连接时候的状态。实际跟PLC连接不上还是要检查通讯参数设置和通讯电缆是否正确。 30、 我们8000的产品如果加CF卡或U盘时该怎么把配方等东西存到CF卡或U盘里,怎么找CF卡或Uhttp://www.kunluntongtai.com/index.php?m=content&c=index&a=show&catid=39&id=294
10.LiteGearsLiteGearsOnlineHelpandDocsPage3把SolidWorks工程图转成PDF有两种方式,一种方式是直接转换PDF,另一种方式是通过PDF虚拟打印机打印成PDF。 我们一般推荐使用第一种方式,一般除了可能会遇到一些字体问题,没有别的缺点。而打印成PDF的方式在速度,兼容性,方便性,需要安装额外软件等方面都没有优势。所以不推荐这个方式。 http://help.litegears.com/en/author/litegears/page/3
11.常见问题和群组有什么区别? 一个聊天室支持100万人。聊天室和群组最大的区别在于,聊天室的消息没有推送通知和离线保存,也没有常驻成员的概念,只要进入聊天室即可接收消息,开始聊天, 一旦退出聊天室,不再会接收到任何消息、通知和提醒。注意:进入聊天室会自动获取最近50条消息,客户端目前不支持创建聊天室 实时音视频怎么收费?https://docs.jiguang.cn/jmessage/guideline/faq
12.腾讯QQ会员当好友不在线时,您依然可以向好友发送文件,文件会保存在我们的服务器中,当您的好友下次登录QQ时就能通过我们的提醒,立即获取您向他/她发送的文件了! C2C离线传文件扩容 离线传文件大扩容,流量步入T级时代!QQ会员独享特权,大文件统统秒传!离线文件传送功能面向所有QQ用户,QQ会员享受更大存储容量特权,会员的离线传文https://baike.sogou.com/v57414345.htm
13.QQ密技68招(超强)QQ技巧QQ专栏这些备份数据一般都不大,你完全可以压缩后把它作为附件发送到E-mail里,下次在别处使用QQ时再下载过来,然后通过“消息管理器”把消息数据导入或者用目录文件覆盖同名目录(注意之前要先登录一次,退出后覆盖),这样就大功告成,你的数据资料又奇迹般地回来了!https://www.jb51.net/qq/15144_all.html
14.关于WebQuest在课堂教学中,一个典型的较长期WebQuest一般将持续1周到1个月,其教学目标是知识的拓展和提炼,所以,在完成了一个较长期WebQuest以后,学习者对知识体系进行了深入的分析,能够将知识进行某种方式的转换,并要求他们通过制作一些可供他人在线或离线交互的多媒体作业来证明自己对这些知识的理解。 http://www.360doc.com/content/11/0409/21/6020603_108461870.shtml
15.探索澳元(AUD)兑换人民币(CNY)的条件汇率和优惠。总之,从AUD兑换CNY是一种安全,便捷和经济有效的方式来发送海外资金。具有竞争力的汇率和少量隐藏收费,此交换选项可能是您的资金转移需求的完美选择。 在线与离线AUD转CNY的区别是什么? 涉及汇款时,用户经常注意外汇汇率。如果能准确快速地做好转换,可以极大地方便使用者。因此,越来越多的人开始比较在线和离线AUD到CNYhttps://item.pandaremit.com/article/3538.html
16.前端面试题详细整理总结发送一个请求来取得服务器上的某一资源 2、POST方法 向URL指定的资源提交数据或附加新的数据 3、PUT方法 跟POST方法很像,也是想服务器提交数据。但是,它们之间有不同。PUT指定了资源在服务器上的位置,而POST没有 4、HEAD方法 只请求页面的首部 5、DELETE方法 https://www.imooc.com/article/309425
17.可能不是史上最全但很实用的BOMAPI详解1监听设备在线离线状态:onLine 的用途 window 提供了 online(上线) 和 offline(离线) 两个事件,可以通过监听这两个事件,并配合 onLine 属性进行判断设备是否离线。 window.addEventListener('online', printNetworkState);window.addEventListener('offline', printNetworkState);function printNetworkState() {console.log(navhttps://developer.aliyun.com/article/1266012
18.理解iOS消息推送一文就够:史上最全iOSPush技术详解1)判断app能否在线: 此处可以根据APP自身的后端策略如上一次与后端交互的时间等方法来判断APP能否在线或者者离线。认为在线,会发送在线push,否则,发送离线push。 2)在线push有以下几个特点: 不需要经过苹果APNs; 需要自己实现长链接; 代码在app内部实现。 https://www.songma.com/news/txtlist_i2865v.html
19.qq腾讯文档怎么转成Excel3d溜溜设计问答平台为广大设计师们提供各种qq腾讯文档怎么转成Excel问题解答,3d溜溜素材问答平台汇聚全球各地的设计师、名师名司、设计爱好者等设计灵感和经验,迅速为您解决qq腾讯文档怎么转成Excel的困惑。https://www.3d66.com/answers_relation/relation_3631089_10.html
20.在线音频转文字在线服务华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:在线音频转文字。https://support.huaweicloud.com/topic/133355-5-Z
21.交易公告3.14.3、铁芯、绕组外部的电气连接线或油箱中的结构件不超过 80K3.15、变压器应装设在线滤油装置,具体设备及配置由厂家提供,厂家应提供国内先进的设备及配件,以满足现场需求。 3.16、过载能力变压器允许短时间过载能力按照 GB1094 执行。 3.17、承受短路电流能力各侧短路容量满足 GBl094.5 的要求,短路后各部位无损坏https://www.qhggzyjy.gov.cn/ggzy/jyxx/001001/001001003/20211224/4629299d-f91b-4656-be33-3d3213b51cd3.html
22.云客服规范及质检规则33.以下关于升级流转的规范哪个是错误的? A当前客户主动要求在线升级转接,小二需优先明确客户问题并 按规范要求进行解答 B不认可解答,可以征询会员同意的前提下升级转接 C当前客户主动要求在线升级且不愿意描述问题,小二可发送转 接承接语后做好转接备注进行转接 https://www.360wenmi.com/f/fileafqhtc3q.html