iOS端集成问题[IM开发文档]

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.书店购书渠道有哪些,专业研究解释定义pack35.40.64摘要:书店购书渠道包括实体书店、在线书店以及第三方购书平台等。实体书店提供纸质书籍的直观挑选和购买体验,在线书店则提供便捷的网络购书服务,第三方购书平台则整合众多书源供消费者选择。关于专业研究解释定义方面,不同领域的研究者通过深入研究特定主题或概念,给出具体、精确的解释和定义,帮助人们更准确地理解相关知识和http://www.hbpdxcl.com/post/44994.html
2.免费咨询在线知识付费系统,为何收费如此低廉?随着在线教育和知识付费市场的不断发展,在线教育机构以及独立教师正面临更多的机会和挑战。为了应对这些机遇与挑战,很多教育和培训领域的从业人员开始采用各种策略来提高自己的课程收益和市场曝光率,其中一种有效的方法便是运用在线知识付费系统。尽管市面上有许多付费的在线教育解决方案,但低成本的甚至是免费的选项也引起https://blog.csdn.net/mokeycourse/article/details/144313218
3.免费资源网站推荐:让你在网上找到最值得收藏的免费工具和资源对于语言学习者,“Duolingo”是一个非常受欢迎的免费学习工具,它通过游戏化的方式帮助用户提高语言能力。无论是英语、法语、日语,还是西班牙语等,Duolingo都能提供非常系统的学习内容。而像“Open Culture”这种网站,不仅提供免费的在线课程,还有大量免费的电子书和音频课程,帮助你利用空闲时间提升自我。 http://www.tiba.vip/tbgl/5222121.html
4.AppleDiscover the innovative world of Apple and shop everything iPhone, iPad, Apple Watch, Mac, and Apple TV, plus explore accessories, entertainment, and expert device support.https://www.apple.com/
5.Dart在线运行,dart在线编译Dart教程 - Dart在线运行,dart在线编译http://dart.jsrun.net/
6.电脑词典O光盘库,光盘存储库 Optical Libraries 光盘库系统的设计是为了将通常存储在微缩胶卷或纸张上的数据存储到可以被网络用户快速访问的联机设备上。一个光盘库也可以提供磁带后援系统,或在一个层次式管理系统(HMS)中作为将文件迁移到磁带上的中间存储设备。在一个HMS系统中,较少使用的文件,或已经标记为迁移的文件将从磁盘http://www.360doc.com/content/07/0410/15/9787_440144.shtml
7.蓝湖—支持自动标注切图共享Symbol的产品设计协作神器蓝湖是一款高效的产品设计协作工具,支持自动标注、自动生成切图、共享Symbol、设计图在线评论、设计图历史版本管理、快速制作原型等,大大提高了设计师、产品经理、工程师之间的协作效率。 蓝湖同时支持: ①Mac和Windows双系统 ②PS和Sketch 而且目前所有功能都是免费的! https://sspai.com/post/42166
8.TheOnlineBooksPageThe Online Books Page Listing over 3 million free books on the Web - Updated Friday, December 13, 2024 BOOKS ONLINE NEWS FEATURES ARCHIVES AND INDEXES THE INSIDE STORYhttp://onlinebooks.library.upenn.edu/
9.bookstoreadandmorestudentsfromfriendsandlibrariesI find books to read and more students from friends and libraries, download or read online as well as in school reading fewer students in the reading room, 翻译结果4复制译文编辑译文朗读译文返回顶部 I found that buying a book and read from a friend or libraries of many students, and downloahttp://eyu.zaixian-fanyi.com/fan_yi_7244776
10.libraries是什么意思libraries在线翻译英语读音用法例句libraries 基本词汇 英['la?br?ri]美['la?breri] n.图书馆;藏书;书房 Created with Highcharts 3.0.2释义常用度分布图海词统计 图书馆 藏书 书房 名词复数:libraries library的英文翻译是什么意思,词典释义与在线翻译: 详尽释义 n.(名词) 文库,书库http://dict.cn/libraries
11.libraries是什么意思libraries在线翻译读音用法例句含义libraries n.图书馆( library的名词复数 );图书室 网络函数库;元件库;图书馆事业;间图书馆 双语例句 1 . It seems a false economy to me to cut down onlibraries. 在我看来,减少图书馆的数量并不是真正的节约。 来自柯林斯例句 2 . I turned to bookshops andlibrariesseeking information and found nonehttps://www.chazidian.com/dict/w/libraries/
12.Id教程:CCLibraries真好用!以及色彩理论!视频在线观看这次介绍一个在所有 Adobe 软件里都可以使用的功能:CC Libraries。因为从 Adobe Color 这个网站上可以一键添加颜色入库(CC Libraries),很方便!所以后半部分给出了一些选色上的小建议。希望对大家有帮助吧~https://www.56.com/u33/v_MTU5NTUxNDE0.html
13.《GettingStartedwithLLVMCoreLibraries》(BrunoCardoso《Getting Started with LLVM Core Libraries》(Bruno Cardoso Lopes,Rafael Auler)内容简介:This book is intended for enthusiasts, computer science students, and compiler engineers interested https://e.jd.com/30370568.html
14.LibrariesBuriesLiesJayzik高音质在线试听酷狗音乐为您提供由Jayzik演唱的高清音质无损Libraries Buries Liesmp3在线听,听Libraries Buries Lies,只来酷狗音乐!https://www.kugou.com/mixsong/jx5tibd.html
15.AndroidStudio导入ExternalLibraries腾讯云开发者社区拷贝gson-2.3.1.jar(gson-2.3.1.jar为例)到 app/libs 目录下 在app/build.gradle的 dependencies 中增加一行:compile files('libs/gson-2.3.1.jar') 在线导入Libraries File > Project Structure > Dependencies Tab > (+号)Add library dependency https://cloud.tencent.com/developer/article/1352772
16.文库构建(siRNALibraries)分子生物学服务技术服务商家询价 产品名称: siRNA 文库构建(siRNA Libraries) 英文名称: 产品编号: 产品价格: 0 产品产地: null 品牌商标: null 更新时间: null 使用范围: null 上海吉玛制药技术有限公司 联系人 : 地址:浦东张江哈雷路1011号602 邮编:201203 所在区域 :上海 https://www.bioon.com.cn/server/Show_product.asp?id=403
17.LibrariesSuite10.5或更高版本》.pdf文档全文免费阅读在线看免费在线预览全文 《Agilent IO Libraries Suite10.5 或更高版本》.pdf Agilent IO Libraries Suite 15.0 或更高版本 用于安捷伦化学工作站 B.04.02 版或更高版本的安 装和配置说明 IO Libraries Suite 15.0 Agilent Technologies 注意 ? 安捷伦科技有限公司, 2004-2009, 声明 安全警告 2010 本书内容如有改变,恕https://max.book118.com/html/2015/1021/27706411.shtm
18.jQueryjQuery: The Write Less, Do More, JavaScript Libraryhttps://jquery.com/
19.GitHubNote that this is not a standard feature for all JWTs - only JWEs - and is not likely to be supported by other JWT libraries for non-JWE tokens. JJWT supports compression for both JWSs and JWEs, however. Please see the main Compression section to see how to compress and decompress http://www.jsonwebtoken.io/
20.剑桥雅思12Test5Section3听力答案解析PaperonPublicLibraries对应原文:Maybe we should concentrate on this country, and try and relate the changes in libraries to external developments 答案解析:原文中提到,论文主题应该集中于这个国家,然后将图书馆中的变化与外界的发展联系起来。因此确定B为正确答案。A选项错在different countries,而C选项则被女生否定。 https://www.eol.cn/waiyu/news/20230712158278.html
21.英语四级作文(精选46篇)In conclusion, online libraries are one of the greatest inventions in this modern world. We can not only enhance the efficiency of acquiring information and knowledge but also enjoy the technological innovation. 在线图书馆越来越受欢迎。越来越多的人通过手机和电脑阅读书籍和查阅所需内容,以供研究。 https://www.ruiwen.com/zuowen/qitaleiyingyuzuowen/6421925.html