更新记录

2.9.1(2022-01-24)

修复Android重新打包时与极光推送的parameters冲突的问题

2.9(2022-01-24)

更新jcore库 2.0.0 -> 2.3.0

更新jmessage库 2.9.0 -> 2.9.2

更新支持的abi如下:

'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'

本次更新,除插件包更新,示例使用无需更新

插件示例建议参照:https://ext.dcloud.net.cn/plugin?id=886,除im.js需要更改插件ID,其他使用方法一致

2.8.2(2021-12-24)

如果需要与极光推送合并打包,请一定要使用这个版本!!!

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 适用版本区间:9 - 14

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


功能特性

各位小伙伴在使用插件上项目的时候,请一定要先在手机上使用demo跑通再移植到自己的app中,否则插件运行在项目中产生的问题,无法精准定位到哪里的js出了问题,谢谢

整体特性

  • 支持消息类型: 文字、图片、语音、地理位置、文件以及自定义消息;
  • 聊天方式:单聊、群聊;
  • 平台:Android & iOS;
  • 用户维护:注册、登录、信息更新;
  • 群组维护:建群、加群和退群;
  • 离线消息:支持离线消息的保存;
  • 关系模式:有好友模式和无好友模式;
  • 跨应用聊天:不同应用下用户可互相通信。

管理控制台

与 JPush 控制台结合,可进行用户和群组的一些基本维护:

  • 创建应用;
  • 注册用户;
  • 管理用户;
  • 维护群组;
  • 发送消息。

APIs

  • 初始化

    • init:初始化插件,注册回调函数,未执行此方法【无法收到任何回调】,建议在应用起始页的构造函数中调用。一定要配置isOpenMessageRoaming,消息是否漫游
  • 用户登录、注册及属性维护(已完善)

    • userRegister:用户注册。
    • userLogin:用户登录。
    • logout:用户登出。
    • getMyInfo:获取当前登录用户信息。如果未登录会返回空对象。
    • getUserInfo:获取用户信息。该接口可以获取不同 AppKey 下(即不同应用)的用户信息,如果 AppKey 为空,则默认为当前应用下。
    • updateMyPassword:更新当前登录用户的密码。
    • updateMyAvatar:更新当前登录用户的头像。
    • downloadThumbUserAvatar:下载用户头像缩略图(不会重复下载)
    • downloadOriginalUserAvatar:下载用户头像原图(不会重复下载),如果用户未设置头像,返回的 filePath 为空字符串
    • updateMyInfo:更新当前登录用户信息。包括了:昵称(nickname)、个性签名(signature)、性别(gender)、生日(birthday)、地区(region)和具体地址(address)
  • 聊天(已完善)

    • setMessageHaveRead:设置消息已读
    • sendTextMessage:发送文本消息,注意在第一次发送消息之前,必须先调用 skipToSingleChat 改用 createConversation 方法。
    • sendImageMessage:发送图片消息。
    • sendVoiceMessage:发送语音消息,0.5s以上,60s以下。
    • sendCustomMessage:发送自定义消息。在收到自定义消息时不会有通知提示。
    • sendLocationMessage:发送地理位置消息,通常需要配合地图插件使用。
    • sendFileMessage:发送文件消息。
    • sendVideoMessage:发送视频文件
    • getHistoryMessages:从最新的消息开始获取历史消息。当 limit 为 -1 而 from >= 0 时,返回从 from 开始余下的所有历史消息。如果 from 大于历史消息总数,则返回空数组。 例如:当 from = 0 && limit = -1 时,返回所有历史消息。
    • getMessageById:根据消息 id 获取消息对象。
    • downloadVoiceFile:下载语音文件。如果已经下载,会直接返回本地文件路径,不会重复下载。
    • downloadFile:下载文件。如果已经下载,会直接返回本地文件路径,不会重复下载。
    • retractMessage:消息撤回
    • forwardMessage:消息转发
    • deleteMessageById:删除指定消息
    • sendSingleTransCommand:发送单聊透传命令消息
    • sendGroupTransCommand:发送群聊透传命令消息
  • 会话(已完善)

    • skipToSingleChat:创建聊天会话。 方法保留,但不再维护,请使用createConversation
    • createConversation:创建聊天会话(支持跨应用,单聊,群聊)。
    • getConversations:从本地数据库获取会话列表。默认按照会话的最后一条消息时间降序排列。
    • resetUnreadMessageCount:重置会话的未读消息数。
    • deleteConversation:删除聊天会话,同时也会删除本地聊天记录。
    • enterConversation:(Android only) 进入聊天会话。当调用后,该聊天会话的消息将不再显示通知。iOS 默认应用在前台时,就不会显示通知。
    • getAllUnreadCount:获取所有会话未读消息总数。
    • exitConversation:(Android only) 退出聊天会话。调用后,聊天会话之后的相关消息通知将会被触发
    • getConversation:获取聊天会话对象
  • 好友(已完善)

    • sendInvitationRequest:发送添加好友请求,调用后对方会收到 friendInvitiaonChange 事件
    • acceptInvitation:接受申请好友请求,调用后对方会收到 friendInvitiaonChange 事件。
    • declineInvitation:拒绝申请好友请求,调用成功后对方会收到 friendInvitiaonChange 事件
    • getFriends:获取好友列表。
    • removeFromFriendList:删除好友,调用成功后对方会收到 friendInvitiaonChange 事件。
    • updateFriendNoteName:更新好友备注名。
    • updateFriendNoteText:更新用户备注信息。
  • 黑名单(已完善)

    • addUsersToBlacklist:批量加入用户到黑名单。
    • removeUsersFromBlacklist:批量将用户从黑名单中移除。
    • getBlacklist:获取被当前用户加入黑名单的用户列表。
  • 群组

    • createGroup:创建群组。
    • getGroupIds:获取当前用户所加入的群组 ID 列表。
    • getGroupInfo:获取群组信息。
    • updateGroupInfo:更新群组信息。
    • updateGroupAvatar:更新群组头像。
    • addGroupMembers:添加群成员。
    • removeGroupMembers:移除群组成员。
    • getGroupMembers:获取群组成员列表。
    • exitGroup:退出群聊。
    • blockGroupMessage:设置是否屏蔽指定群组消息
    • isGroupBlocked:查询指定群组是否被屏蔽
    • dissolveGroup:解散群
    • addGroupAdmins:批量添加管理员
    • removeGroupAdmins:批量删除管理员
    • changeGroupType:修改群类型
    • getPublicGroupInfos:分页获取指定 appKey 下的共有群
    • applyJoinGroup:申请公开群入群
    • processApplyJoinGroup:批量处理公开群入群请求
    • transferGroupOwner:移交群主
    • setGroupMemberSilence:设置禁言或解禁用户
    • isSilenceMember:判断用户是否被禁言
    • setGroupNickname:设置群成员昵称
  • 免打扰

    • setNoDisturb:设置对某个用户或群组是否免打扰
    • getNoDisturbList:获取免打扰列表
  • 聊天室(已完善)

    • getChatRoomInfoListOfApp:分页获取当前应用的聊天室信息
    • getChatRoomInfoListOfUser:获取当前登录用户加入的聊天室信息列表
    • getChatRoomInfoListById:根据聊天室 id 获取聊天室信息
    • getChatRoomOwner:获得聊天室所有者的用户信息
    • enterChatRoom:进入聊天室。 用户只有成功调用此接口之后,才能收到聊天室消息,以及在此聊天室中发言。 成功进入聊天室之后,会将聊天室中最近若干条聊天记录同步到本地并触发 receiveChatRoomMessage 事件
    • exitChatRoom:离开聊天室。 成功调用此接口之后,用户将能不在此聊天室收发消息。
    • getChatRoomConversation:获取聊天室会话信息。
    • getChatRoomConversationList:从本地数据库中获取包含当前登录用户所有聊天室会话的列表。
  • 事件监听

    • receiveMessage: 收到聊天消息
    • receiptMessage: 已读消息回执
    • clickMessageNotification: 点击消息通知
    • loginStateChanged: 登录状态变更
    • sendMessageResponse: 发送消息结果返回回调
    • friendInvitiaonChange:好友相关事件监听
      • type: 消息类型,可能为:
        • invite_received: 收到好友邀请
        • invite_accepted: 对方接受了你的好友邀请
        • invite_declined: 对方拒绝了你的好友邀请
        • contact_deleted: 对方将你从好友中删除
      • reason: 事件发生的理由。由发起方请求时填写,如果没有填则返回默认字符串
      • fromUser: 事件发起者的用户信息
      • fromUserAppKey: 事件发起者的 AppKey
    • receiveApplyJoinGroupApproval:申请入群事件监听
    • retractMessage:消息撤回事件监听
  • 其他

    • setBadge:设置iOS服务器角标

安装使用

  • 1、在极光官网申请IM的appkey,iOS需配置推送证书
  • 2、选择manifest.json选择原生插件,选择极光IM插件,配置appkey为极光官方后台即可。
  • 3、请下载示例hbx项目,查看更多使用场景
  • 使用方法在static/js/im.js,请下载hbx示例项目即可。

常见问题

  • 问题:Android为何收不到通知栏消息

    答:请在设置 - 通知和状态栏 - 通知管理 - 打开应用名称的悬浮通知/锁屏通知 即可。

  • 问题:iOS角标为什么一直没有置0

    答:请调用setBadge方法,可以监听收到新消息后,调用getAllUnreadCount,回调中再继续调用setBadge即可。

  • 问题:iOS注册以后登录闪退?

    答:调用userLogin方法,请检查传参是否为string,如果password为123455,也请改为:"123456" 即可。

  • 问题:好友发送的所有通知列表在哪?

    好友相关通知事件注意:好友相关事件 SDK 并没有做本地化存储,上层想要做记录这些事件,则需要配合服务端实现存储。详见[IM官方文档](http://docs.jiguang.cn/jmessage/client/ios_sdk/friend/#_14 "IM官方文档")

  • 问题:Android为什么杀死app以后收不到推送了,为什么微信和QQ就可以呢,他们也申请加入了厂商的白名单吗?我怎么添加进入白名单呢,有那么多的小米,华为,我要一个一个跟厂商说吗?

    因为现在的安卓手机为了达到省电省流量的情况,会自动把非白名单的用户的网络禁止掉,只有在打开应用的白禾木山,才让其联网。至于QQ和微信,主要由市场占有率决定,已经被手机厂商默认为了白名单用户了,不需要主动添加。极光官方有小米华为等厂商聚合通道,有兴趣可以联系极光官方客服,此通道为VIP通道,付费

  • 问题:Android一般是什么时候会离线导致收不到推送消息?

    这种时间无法进行统计,取决于各个手机系统的限制情况的。【极光官方回复】

  • 问题:我想知道我已经点了【试用】,也点击了【下载示例项目】 或 【使用HBuiderX导入项目】,基座怎么使用呢?

    点击查看

  • 问题:可以开具购买发票吗?

    可以,点击后,拖到页面底部

  • 问题:我微信小程序或者H5可以用吗?

    不可以,仅支持iOS、Android

  • 问题:打包时可以同时使用极光推送的另一款插件吗?

    不可以,因为IM内置了推送的库,只是没有完整的集成进来,会有一部分依赖包重合,导致重复引用,打包失败

  • 问题:购买了这个插件,后期作者更新了我还需要重新付费吗?

    一经购买,无论后面更新了多少功能,都是免费升级,无需重新付费

  • 问题:购买以后包名绑错了,可以改吗?

    该问题已经咨询过dcloud官方,一经购买,不允许修改,请在购买之前先布署好对应的证书和环境,可先用试用版

更多使用方式请咨询作者:398927951

插件交流咨询QQ群号:489296833

体验版下载

Android体验版下载 密码:123456

测试帐号

  • test01 密码 123456
  • test02 密码 123456
  • test03 密码 123456
  • test04 密码 123456

隐私、权限声明

1. 本插件需要申请的系统权限列表:

推送权限 录音权限 相册权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件本身没有采集,使用的是极光第三方SDK,sdk内所采取的数据请查看官方文档 http://docs.jiguang.cn/jmessage/client/jmessage_android_guide/ http://docs.jiguang.cn/jmessage/client/jmessage_ios_guide/

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问