常见问题 - JMessage 合集(持续更新)

ios
问题汇总
android
标签: #<Tag:0x00007fb8252b2688> #<Tag:0x00007fb8252b2228> #<Tag:0x00007fb8252b1c10>

(12) #1

建议大家在使用极光产品前,详细阅读官方文档,遇到问题可首先参考官方 FAQ。

以及在本社区里搜索(顶部有搜索按钮)。

若搜索无果,极光 IM SDK 的问题请在「JMessage 模块」发帖咨询,为更有效更快速的解决问题,请优先阅读 「提问指南」

官方文档

更新与下载

特别情况说明

常见问题目录

  1. 需要用 OC 进行开发,但 JChat 只有 swift 版本,怎么做 点我

  2. 如何查看客户端日志 点我

  3. 获取不到用户头像 点我

  4. 如何发送表情 点我

  5. iOS 收到会话消息的推送,点击如何跳转 点我

  6. Android 收到会话消息,通知栏提醒问题 点我

  7. 863006 重复登录 点我

  8. Web 端如何获取历史消息 点我

  9. 为什么 JMessage 收到消息没有通知提醒 点我


请问哪里可以下载极光的官方聊天jchat
消息列表即时更新
常见问题 - JPush 合集(持续更新)
导入极光IM IOS 组件之后一直报错无法解决
JMessage华为手机 不给应用自启动权限登不上去 怎么解决
(12) #2

获取不到用户头像


  1. A 更新头像后,B 用户在线, A 给 B 发了一条单聊消息或群聊消息,B 在线收到消息时 SDK 会去检查发送者的信息是否更新,如果有更新,会自动获取。(如果你的 SDK 版本不行,请升级到最新版本,阅读更新列表
    如果 A 发消息时, B 处于离线状态,等他再次上线时,查看用户 A 的个人信息是没有自动更新的,除非用户 A 再发送一条在线消息给用户 B。

  2. 如果不发消息,则 A 更新信息后,其他用户是无法得知他更新过的,需要他 主动获取 A 的用户相关信息,将发送方的信息拉取下来,再用message.getFromUser.getavatar 获取才可以获取到值。



如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




Android IM是否有获取群组头像的方法
极光IM中怎么获取消息发送者的头像?
安卓用户能显示IOS用户的头像,但是IOS用户不能显示安卓用户的头像
phoneGap 如何获取会话列表中对方的头像
JMessage.updateMyAvatar 更新头像问题
iOS版JMessage对方更新了头像,聊天时依旧显示旧头像
安卓IM 怎么获取头像
IM对方头像问题获取不到问题
从message.getFromUser.getavatar获取不到用户头像
极光IM本地会话里的UserInfo和服务器同步的问题
在群聊天中,当有一个用户的头像改变,如何修改所有会话的头像
IM插件问题-群聊的时候 里面用户的头像是空的
从message.getFromUser.getavatar获取不到用户头像
后台集成SDK能统一上传用户头像么??急求
后台集成SDK能统一上传用户头像么??急求
IM插件问题-群聊的时候 里面用户的头像是空的
(12) #3

我发送U+1F60A 可以显示表情吗
(12) #4

想发送表情 应该怎么做?


JMessage SDK 是支持 emoji 表情发送的。

目前官方 JChat 里已经提供了 emoji 表情的 UI 界面。 可以参考。

思考:

  • 表情如果是图片, 就用发送图片的接口
  • 如果是文字,就是发送文字
  • Unicode 标量,可表示某表情的,譬如 U+1F425 表示一只小鸡,可自行了解一下。

创建消息的说明文档 点击查看



如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




(12) #5

863006 重复登录问题


如果你一定要在每次退出了 App,再进来时做一次登录,那你可以先调用下退出接口,不然你原来就登录了再去登录就冲突了

因为你本身已经是在线的,如果不调用接口退出,服务器那边还是保存着你登录的状态

你可以通过拿用户的信息来判断是否登录了:

也可以自己想办法判断



如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




Jmessage如何实时的判断用户是否在线
两台设备登同一账号,为何onEventMainThread不触发?
JMessage离线消息怎么走推送
iOS IM调用登录的接口就崩溃,这是为什么???
linux服务器无法连接外网,前端js可以获取签名和用户登录状态吗?
API调用发起者尚未登录
(12) #6

(12) #7

(12) #8

iOS 收到会话消息的推送,点击如何跳转


点击通知栏,通过获取apns消息的API 可以拿到通知信息,一般是类似如下的消息内容

这些信息不足以让我们知道消息是谁发来的,可以对应跳转到哪个聊天页面

解决办法

在创建消息的时候,使用 addStringExtra 这个接口可以填充你想要的信息, 使用 addStringExtra 后, 推送信息里会对应增加一个字段:custom,你可以从这里取到你填充的内容。

JMSGTextContent *textContent = [[JMSGTextContent alloc] initWithText:text];
[textContent addStringExtra:@"userName" forKey:@"userName"];
[textContent addStringExtra:@"your appKey" forKey:@"appkey"];
JMSGMessage *message = [_conversation createMessageWithContent:textContent];
[_conversation sendMessage:message];

有了 username,就可以很方便的与你要跳转到的聊天页面对应起来啦。

如果是 Android 或 web 给 iOS 端发消息,也需要在各自的消息 extras 中添加下 username 信息
API 参考该贴

具体跳转的实现,需要大家自己去做哦



如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




ios 群聊信息的,推送,是自动推送的嘛?可以让服务器推送吗?
react-native im 收到消息,点击消息这么到聊天页面
获取会话列表中没有扩展字段
createSendMessage问题
关于JMessage的cordova插件在ios上点击通知的回调参数问题
iOS,在app被杀死的情况下,IM信息怎么接收
Uncaught TypeError: Cannot read property 'addClickMessageNotificationListener' of undefined
极光聊天:收到他人发的聊天信息后,如何点击通知栏通知进入自定义页面?
android 收到聊天消息的处理
(12) #9

(12) #10

Android 收到会话消息,通知栏提醒问题


  • 调用接口 enterGroupConversation(long groupID) 进入聊天会话后,需要调用接口 exitConversation() 退出聊天会话 ,之后收到消息,通知栏才会有展示。

  • 可以对通知栏的展示样式做修改

  • 如果不需要提醒,可以设置 免打扰

  • 自定义消息默认在通知栏不显示,有需要可自行实现展示。

  • 检查手机端-设置-通知-通知栏,是否允许通知。



如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




(12) #11

(12) #12

(12) #13

判断是否注册/登录


  1. 如果用一个已经注册过的 username 去注册,那么会提醒已经存在,报错 898001
  2. 通过拿用户的信息来判断是否登录了,方法


如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




ios 极光聊天,有没有方法,判断用户是不是登录成功??
(12) #14

需要用 OC 进行开发,但 JChat 只有 swift 版本,怎么做


你可以直接使用 Swift 版本的 JChat, 非常简单,只需要桥接一下就可以了, 比如说你要跳转到聊天界面:

JMSGConversation  * __nonnull conv = [JMSGConversation singleConversationWithUsername:@"1233"];
JCChatViewController *vc = [[JCChatViewController alloc] initWithConversation: conv];

直接 push 到这个界面就可以,简单方便, 逻辑已经写好了。

你只需要根据你们的需要和 UI 样式简单地改一下下就可以完美使用起来

  • 支持 swift3.+ ,swift4.+。
  • 需要 Xcode9 以上

如果喜欢 JChat 项目,来 GitHub 点个 star 吧



如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




OC项目怎么使用Swift demo的UI
iOS 集成极光im,sdk发送小视频的问题
各位大神,谁有自己写好的简单的ios IMdemo啊??
ios 使用Jchat 导入到项目中 键盘一直闪
(12) #15

Web 端如何获取历史消息


情况说明:浏览器本身提供的存储空间很小,所以 Web SDK 并没有提供获取本地历史记录的接口。

如何解决:

  1. 当前提供了漫游功能,用户多个设备之间登录时,sdk 会自动同步当前登录用户的历史消息。

    • 漫游消息的同步是走离线消息的监听方法

    • 漫游自动同步 15 天内,每个会话最近 100 条的消息,如果觉得不够,看第二条 :point_down:

  2. 可以在服务端调 API 获取历史消息保存在你的服务端,然后 web 向你的服务端请求数据。

    • 服务端保存 60 天的历史消息,需要需要保留所有的消息,就请及时在服务端调 API 拉取记录保存到自己的服务器。

    • 以上功能均是免费的。

  3. 你还可以自己在页面上或者本地缓存会话的消息数据,自己做历史记录保存。



如果对你有帮助,点个赞:sparkling_heart:呗ლ(╹◡╹ლ)

点这里返回常见问题目录




小程序 获取聊天记录问题
(12) #16

为什么 JMessage 收到消息没有通知提醒


Jmessage 可能会影响通知栏展示的因素

  1. 是否开启了全局免打扰

  2. 用户是否将对方加入免打扰列表,iOS 免打扰相关文档Android 免打扰相关文档

  3. 发送方发送时是否将这条消息设置为“免通知”,Android 是在 MessageSendingOptions 中设置,iOS 是在 JMSGOptionalContent 中设置

  4. Android 消息接收方是否调用了 enterConversation

  5. Android 是否使用 setNotificationFlag 设置了不展示通知,Android 通知相关 API

  6. iOS 在前台不会展示通知,如果集成了 JPush 且设备为 iOS10 以上,可以实现前台展示的方法,JMessage iOS 通知管理JPush iOS 10 的方法

  7. Android 自定义消息没有通知栏通知,iOS 会有。

  8. 系统设置里关了应用通知

如果检查上述情况后,重新调了 API 设置开启了通知,可能需要你重装 App 。


跨应用两端发送及时消息,接收不到消息提醒 可以接收消息
同一个app 同一个发送方,不同的接收方两个账号A和B,A可以接收通知,B不能接收到通知