更新记录
2.9.3(2022-03-14)
修复因iOS依赖库编译架构错误导致的打包失败
2.9.2(2022-03-11)
修复iOS版本由于配置文件key名写错引起的闪退问题
2.9.1(2022-03-11)
1、修复iOS闪退的问题 2、更新前端模板,与通用版一致
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | 适用版本区间:9 - 14 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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:更新群组信息(群描述不能为空,否则改不了群名称,感谢 @FOREVER LIGHT 提供测试反馈)。
- 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