imtoken钱包的官方网站的下载地址在哪里

  以下视频是对融云 Android SDK 开发使用的详细讲解,您可以在阅读文档时配合学习。

   

  更多视频教程如下:

  CSDN 融云 Android SDK 开发使用教学视频

  InfoQ 融云 Android SDK 开发使用教学视频

  开发者在集成融云即时通讯、实时网络能力前,需前往融云官方网站注册创建融云开发者帐号。

  您可以到融云官方网站下载融云 SDK。融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。各组件的功能如下:

  您要进行应用开发之前,需要先在融云开发者平台创建应用。如果您已经注册了融云开发者帐号,请前往融云开发者平台创建应用。

  您创建完应用后,首先需要了解的是 App Key / Secret,它们是融云 SDK 连接服务器所必须的标识,每一个 App 对应一套 App Key / Secret。针对开发者的生产环境和开发环境,我们提供两套 App Key / Secret,两套环境的功能完全一致。您在应用最终上线前,使用开发环境即可。

  Token 称为用户令牌,App Key 是您的 App 的唯一标识,Token 则是您 App 上的每一个用户的身份授权象征。您可以通过提交 userId 等信息来获得一个该用户对应的 Token,并使用这个 Token 作为该用户的唯一身份凭证与其他用户进行通信。

  Token 的主要作用是身份授权和安全,因此不能通过客户端直接访问融云服务器获取 Token,您必须通过 Server API 从融云服务器 获取 Token 返回给您的 App,并在之后连接时使用。详细描述请参考 Server 开发指南中的用户服务和获取 Token 方法小节。

  userId : 每一个用户对应一个 userId,这个 userId 是您维护的,所以您可以直接赋值,两个您的的用户通信,对于融云来说就是两个 userId 间通讯。

  name : 用户的显示名称,用来在 Push 推送时,或者您没有传入用户信息时,默认显示的用户名称。

  portraitUri : 用户头像,用来当您没有传入用户信息时作为默认头像,如果图片不存在,IMKit 会显示默认头像。

  通过 API 调试,您可以得到一个 Token 返回值。您就可以直接使用这个 Token 为这位用户进行发送和接受消息。

  环境要求

  在您集成融云 SDK 前环境要求如下:

  Android SDK Build-tools 请升级到 21 及以上版本。

  JAVA 编译版本 JDK 1.7 及以上版本。

  使用 IMKit 需要 Android Support V4 21 及以上版本。

  我们建议初次集成 SDK 的用户,先创建一个空项目来集成融云的 SDK,然后再考虑加入您的工程。

  以 Module 形式导入前面下载的融云 SDK 里面的各个组件。

  打开您的工程, File -> New -> Import Module

  打开您从官网下载的融云 SDK,选择 IMLib。如图:

  根据您的需要,以同样的步骤导入SDK里的其它组件: IMKit, CallKit, CallLib, RedPacket。

  将 PushLib 中的 jar 包 和 pushDaemon -> libs 目录下应用所支持平台的 so 拷贝到您应用的 libs 目录下,另外还需要将 pushDaemon -> executable 目录下各平台的可执行文件 push_daemon 拷贝到您应用 Module 的 assets 目录下。如图:

  注意 : 放置 so 的文件夹位置需要和您 build.gradle 文件中配置的 jni 目录一致。

  将 LocationLib 里的 jar 包拷贝到您应用的 libs 目录下(如果不需要位置功能,可跳过此步骤)。

  注意

  音视频通话组件 CallLib 仅支持 armeabi-v7a 和 x86 架构 CPU (组件功能),如果您使用了我们的音视频通话功能,注意需要把 IMLib 和 PushLib 组件中其它 CPU 架构的 so 删除。或者您也可以在应用的 build.gradle 文件中增加如下配置来过滤 so :

  打开应用的 build.gradle,在 dependencies 中添加相应模块的依赖。如图:

  打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为您自己的 AppKey. 如图:

  打开应用的 App Module 的 AndroidManifest.xml 文件, 把从高德官网获取的 AppKey 添加到 meta-data 里 (如果您不使用位置功能,可跳过此步骤)。

  在应用的 App Module 的 AndroidManifest.xml 文件中,添加 FileProvider 相关配置,修改 android:authorities 为 “您的应用的包名称.FileProvider”。

  在整个应用程序全局,您只需要调用一次  方法。对于快速集成,我们建议您在 App 主进程初始化,您只需要实现一句函数,以下为融云 Demo 代码示例:

  关于初始化的注意事项

  融云的 SDK 使用了跨进程机制来进行通信,运行后您的 App 后您会发现以下三个进程: 1、您的应用进程;2、您的应用进程: ipc,这是融云的通信进程;3、io.rong.push,这是融云的推送进程。

  连接服务器前,确认已通过融云 Server API 接口获取 Token。

  connect() 方法在整个应用只需要调用一次,且必须在主进程调用。如果连接失败, SDK 会自动启动重连机制,进行最多10次重连,分别是1, 2, 4, 8, 16, 32, 64, 128, 256, 512秒后。如果仍然没有连接成功,还会在检测网络状态变化时再次重连。应用不需要做额外的重连操作。

  融云 IMKit SDK 使用了 Fragment 作为会话列表和会话界面的组件,其优点是支持各种嵌套方式,更符合您的定制化需求。 下面说明如何在 Activity 里以静态方式加载融云 Fragment.

  配置布局文件

  这是您的会话列表 Activity 对应的布局文件:conversationlist.xml。注意 android:name 固定为融云的 ConversationListFragment。

  新建 Activity

  配置 intent-filter:

  融云 SDK 是通过隐式调用的方式来实现界面跳转的。因此您需要在 AndroidManifest.xml 中,您的会话列表 Activity 下面配置 intent-filter,其中,android:host 是您应用的包名,需要手动修改,其他请保持不变。

  融云支持在会话列表页面自定义某种类型的会话以聚合形式展示,比如,定义所有私聊会话聚合显示,则在会话列表页所有私聊会话聚合显示为“我的私人会话”,点击“我的私人会话”,会进入所有私聊会话的展示页面,这个页面即为聚合会话列表,如图:

  image

  聚合会话列表

  如果您的应用定义了聚合会话,请按照下面的说明进行相应配置,否则可以直接跳过此步骤。

  自定义聚合会话列表请参考会话列表自定义。

  配置布局文件

  这是您的聚合会话列表 Activity 对应的布局文件:subconversationlist.xml。 注意 android:name 固定为融云的 SubConversationListFragment。

  新建 Activity :

  配置 intent-filter

  在 AndroidManifest.xml 中, 聚合会话 Activity 下面配置 intent-filter。 注意请修改 android:host 为您应用的包名,其他保持不变。

  会话 Fragment 跟会话列表是完全一致的,您可以用同样的方式快速的配置好。

  配置布局文件

  这是您的会话 Activity 对应的布局文件 conversation.xml,注意 android:name 固定为融云的 ConversationFragment。

  新建 Activity

  配置 intent-filter

  在 AndroidManifest.xml 中,会话 Activity 下面配置 intent-filter。 注意请修改 android:host 为您应用的包名,其他保持不变。

  会话列表及界面实现的视频教程

  视频讲解会话界面、会话列表的配置以及  的嵌套和  的使用。

   

  会话界面 Title 配置的视频教程

  此视频讲解了会话界面的  如何编写,以及怎样通过  的方式拿到  、昵称、会话类型等。

   

  完成以上配置后,即可启动会话及会话列表界面,启动界面操作必须在执行初始化 SDK 方法  及连接融云服务器  之后进行,示例如下:

  当您的应用处于后台运行或者和融云服务器 disconnect() 的时候,如果收到消息,融云 SDK 会以通知形式提醒您。所以您还需要自定义一个继承融云 PushMessageReceiver 的广播接收器,用来接收提醒通知。如图:

  具体可参考文档。

  融云 SDK 提供以下两种断开连接的方法:

  如果您想在断开和融云的连接后,有新消息时,仍然能够收到推送通知,调用 disconnect() 方法。

  如果断开连接后,有新消息时,不想收到任何推送通知,调用 logout() 方法。

  通过以上步骤,您即完成了融云 SDK 的集成。

  您也可以参考下面的快速集成 Demo 来快速集成融云 SDK。 Android Studio 快速集成。

  设计原理说明:

  融云认为,每一个设计良好且功能健全的 App 都应该能够在本地获取、缓存并更新用户信息。所以,融云不维护用户基本信息(、、)。此外,App 提供用户信息也避免了由于缓存导致的用户信息更新不及时,App 中不同界面上的用户信息不统一(比如:一部分 App 从 App 服务器上获取并显示,一部分由融云服务器获取并显示),能够获得最佳的用户体验。

  融云提供了两种方式从 App 的数据源。

  1、设置用户信息提供者:

  调用  方法设置 。用户信息提供者采用  模式,即您提供给融云的 IMKit 一个 ,当融云的 IMKit 需要使用用户信息的时候,调用您传入的  方法,向您获取用户信息。所以您在  方法中,需要根据传入的 userId 参数,向我们返回对应的用户信息。

  很多时候 getUserInfo 这个方法会去 App 服务器异步获取用户信息,不能实时返回用户信息。这种情况下,请在成功获取到用户信息的异步回调中使用下面方法来刷新信息。

  刷新用户信息:

  刷新群组信息

  刷新讨论组信息

  2、使用消息携带用户信息

  当 App 本身没有用户系统或者因为某些原因不方便使用上述用户信息提供者的时候,可以使用消息携带用户信息来发送给消息接收方。

  请注意这种方式不要和用户信息提供者混用。并且,这种方式会在每条发送的消息里都携带当前登陆用户的信息,增加消息的长度。

  首先,需要使用  方法来设置当前的用户信息。

  接下来,在  之后调用下面方法设置消息携带用户信息。

  接收方在接收到消息后,SDK 会自动从消息中取出用户信息,并显示到 UI 上。

  常见问题:

  如何将聊天和好友界面的头像修改为圆形?

  以下视频主要讲解融云  中用户信息的实现包括头像及昵称。

   

  单聊是最基本的聊天界面,提供文字、表情、语音片段、图片、VoIP 等多种输入内容,解决 App 内用户的沟通瓶颈。会话关系由融云负责建立并保持,退出聊天界面或者离线后可以收到推送通知。

  前提条件:

  RongIM.init(this),接口已经执行。

  RongIM.connect(….),接口已经执行且 onSuccess() 被回调。

  会话 Activity 已经在 AndroidManifest.xml 文件中,配置了对应的 intent-filter,详见配置说明文档。

  打开单聊窗口:

  常见问题:

  为什么 getConversationTitle() 获取会话标题为空

  怎样设置聊天界面点击头像事件?

  讨论组业务的描述,请参见新手指南中的说明。

  前提条件:

  RongIM.init(this),接口已经执行。

  RongIM.connect(….),接口已经执行且 onSuccess() 被回调。

  会话 Activity 已经在 AndroidManifest.xml 文件中,配置了对应的 intent-filter,详见配置说明文档。

  打开讨论组聊天窗口:

  创建讨论组会话并进入会话界面:

  创建讨论组

  添加讨论组成员:

  同一个用户最多可加入 500 个讨论组。

  移除讨论组成员:

  讨论组人数上限设置:

  讨论组人数在服务端有上限限制,为 500 人,客户端根据具体的业务需求,可以通过配置文件配置讨论组人数上限,请在 res/values/rc_config.xml 文件中修改, xml 文件如下:

  群组业务的描述,请参见新手指南中的说明。

  群组信息与群 imtoken官方网站的下载地方是什么成员信息是由 App 自已提供并进行维护管理,融云只是同步群组关系数据,并不保存群组的具体信息,融云会根据开发者同步的群组数据,计算群组的成员信息并群发消息。所以,当界面组件创建会话需要显示群组信息时,需要向 App 获取。App 需要设置一个群组信息提供者给 IMKit,以便 IMKit 读取好友关系。

  前提条件:

  RongIM.init(this),接口已经执行。

  RongIM.connect(….),接口已经执行且 onSuccess() 被回调。

  会话 Activity 已经在 AndroidManifest.xml 文件中,配置了对应的 intent-filter,详见配置说明文档。

  启动群组聊天界面:

  客户端的所有群组操作都需要请求您的 App Server, 您的 App Server 可以根据自己的逻辑进行管理和控制,然后通过 Server API 接口进行群组操作,并将结果返回给客户端。

  详请见 Server API 群组服务接口。

  以下展示了客户端进行群组操作的流程:

  创建群组

  加入群组

  退出群组

  解散群组

  设置群组信息

  获取群组成员列表

  获取群组列表

  聊天室业务的描述,请参见新手指南中的说明。

  聊天室与群组最大的不同在于,聊天室的消息没有 Push 通知,也没有成员的概念。想参与聊天室聊天,接收聊天室消息,加入聊天室即可;不参与聊天室聊天,不接收消息,退出聊天室即可。IMKit 组件中已经内置了加入和退出聊天室的接口调用,您直接启动即可:

  前提条件:

  RongIM.init(this),接口已经执行。

  RongIM.connect(….),接口已经执行且 onSuccess() 被回调。

  会话 Activity 已经在 AndroidManifest.xml 文件中,配置了对应的 intent-filter,详见配置说明文档。

  启动聊天室界面:

  加入聊天室

  加入聊天室,如果聊天室不存在,则创建聊天室并加入;如果已经存在,则直接加入。

  加入已经存在的聊天室

  聊天室拉取消息数设置:

  进入聊天室时默认拉取消息数为 10 条,根据需求可通过配置文件修改拉取消息条数,建议拉取消息数不超过 50 条,请在 res/values/rc_config.xml 文件中修改,为 -1 表示不获取任何历史消息,0 表示不特殊设置而使用 SDK 默认的设置(默认为获取10条),最大值为50。 xml 文件如下:

  前提条件:

  RongIM.init(this),接口已经执行。

  RongIM.connect(….),接口已经执行且 onSuccess() 被回调。

  会话 Activity 已经在 AndroidManifest.xml 文件中,配置了对应的 intent-filter,详见配置说明文档。

  打开系统会话聊天界面:

  IMKit 中提供封装好的客服功能和 UI 界面,轻松的几行代码就能完成集成,为应用中用户提供优质的客服服务。

  前提条件:

  RongIM.init(this),接口已经执行。

  RongIM.connect(….),接口已经执行且 onSuccess() 被回调。

  会话 Activity 已经在 AndroidManifest.xml 文件中,配置了对应的 intent-filter,详见配置说明文档。

  已在 融云开发者平台 开启客服服务,并获取 。

  打开客服聊天界面:

  使用我们的客服需要集成  到  中 ,当您退出这个  的时候调用如下代码:

  当触发  事件的时候,做以下处理:

  目的就是为了让我们的  捕捉到  事件,然后弹出 。

  退出客服界面是否关闭客服设置

  在  配置文件中,设置退出客服界面后是否关闭客服功能,默认为  退出后关闭客服不接收客服消息,为  时退出客服界面后不关闭客服,还能正常接收客服消息。

  客服界面提示窗自定义

  客服界面的提示窗口,首先集成一个自定义的类继承自 ConversationFragment, 然后在自定义类中重写 onCustomServiceWarning() 方法,如下图:

  机器人模式的评价和人工模式的评价,可以通过在自定义类中重写 onCustomServiceEvaluation() 方法来自定义,如下图:

  是为应用开发者和公众帐号运营者提供的连接服务产品,通过融云公众服务,App 可以具备为自己的用户提供公众帐号服务的能力和资源。

  :和。

  :是为应用开发者提供的 App 内建公众服务能力,通过在融云开发者站点创建 App 公众号,实现应用内的公众服务。

  :是在应用开发者和公众帐号运营者之间建立的对接平台,应用开发者可以通过平台引入公众服务资源,帮助 App 快速覆盖用户需求,公众帐号持有者通过平台可以有机会向所有集成融云 SDK 的 App 提供服务,进而获得更加精准更加丰富的受众渠道。

  开发者可在 融云开发者平台 的公众服务模块中,通过添加或中的公众号到自已的应用中。

   组件中已经内置了订阅和取消订阅公众号的接口调用,您直接启动即可:

  前提条件:

  RongIM.init(this),接口已经执行。

  RongIM.connect(….),接口已经执行且 onSuccess() 被回调。

  会话 Activity 已经在 AndroidManifest.xml 文件中,配置了对应的 intent-filter,详见配置说明文档。

  打开应用公众服务会话界面:

  打开公众服务号会话界面:

  打开应用公众服务信息界面:

  打开公共服务号信息界面:

  搜索公众号

  通过  或  方法搜索已经添加的公众号列表,可以按关键字精确匹配或模糊匹配方式进行搜索。

  获取己关注公共账号列表:

  在应用中需要展示已关注公共账号列表时,可通过  方法获取己关注公共账号列表信息。

  获取某公众号信息

  发送文本消息如下:

  构造位置消息:

  根据位置消息生成 Message 实例,如下:

  发送位置消息:

  融云 SDK 默认使用的是高德地图,您也可以基于其它第三方实现位置功能,请参考基于百度地图实现融云 SDK 文档。

  默认图片消息发送

  获取 ImageMessage 实例

  发送图片消息

  上面的方法是 SDK 默认发送图片的方法,图片会存储到七牛,默认保存一个月。

  发送图片消息并且上传到自己的服务器

  构造消息实例

  调用下面的方法发送图片消息

  图片缩略图机制:

  缩略图尺寸为:240 x 240 像素,以宽度和高度中较长的边不超过 240 像素等比压缩。

  大图尺寸为:960 x 960 像素,以宽度和高度中较长的边不超过 960 像素等比压缩。

  基本原理:录制语音,本地存储转换为 AMR 格式,获取语音时长,构造语音消息并发送。

  生成图文消息实例:

  发送消息

  融云 SDK 默认支持文件发送功能,点击查看文件消息产品介绍。

  注: 融云 SDK 默认实现了文件管理器功能,如果您想自定义文件管理器,可以通过自定义会话扩展区的方式来自定义文件管理器。

  1. 自定义文件保存位置

  接受到文件消息,并点击下载后,该文件默认保存在 SD 卡的  下。

  您可以通过更改 SDK 的  里面的  的值,来自定义文件的存储路径。

  2. 文件消息相关功能说明

  发送文件消息

  下载文件消息

  取消文件下载

  如果您使用的是 IMLib SDK 集成,可参考 IMLib 文件消息文档。

  融云推送服务及集成第三方推送服务,详细请查看推送服务开发指南。

  设置自己发出消息的监听器,在 init() 之后即可设置。

  注意:如果在 Activity 里设置,需要在 Activity 销毁时,将监听设置为 null,防止内存泄露。

  设置后实现消息发送监听接口  ,消息发送失败可在  方法中根据  返回的状态码实现自已的逻辑处理。 返回  表示走自已的处理方式,否则走融云默认处理方式。

  接收消息的监听器,在 init() 之后即可设置。注意,建议设置在 Application 里面,这样才能在整个应用的生命周期,都能监听到接收消息事件。

  接收消息监听器的实现,所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种状态。

  您可以在自定义的继承融云 PushMessageReceiver 的广播接收器里面监听到 push 事件。

  关于融云推送的详细机制和功能,您可以参考推送服务开发指南。

  设置连接状态监听,必须在  后进行调用。 注意:建议设置在 Application 里面,这样才能在整个应用的生命周期,都能监听到状态变化。

  实现连接状态监听器,以获取当前连接相关状态。

  会话列表操作监听,在调用  之后即可进行设置。

  实现会话列表操作监听接口  。

  会话界面操作的监听器,在调用  后即可进行设置。

  实现会话界面操作的监听接口  。会话界面中点击用户头像、长按用户头像、点击消息、长按消息的操作都在此处理。

  未读消息数监听器,必须在  之后即可调用。

  Activity 销毁时,移除监听。

  会话列表相关布局文件

  rc_fr_conversationlist.xml 会话列表布局文件

  rc_item_conversation.xml 会话列表各个 item 对应的布局文件

  可以通过修改这些布局文件修改背景或字体颜色等。

  根据会话类型过滤显示的会话,以及配置是否聚合显示

  可以根据会话类型,限制会话列表只显示某几个类型的会话,以及这些会话是否以聚合形式显示。

  下面以自定义会话列表只显示单聊和群组会话为例,说明如何自定义:

  a. 配置 Uri

  image

  b. 把自定义的 Uri 赋值给 ConversationListFragment

  头像位置自定义

  对于会话列表中每种会话类型的会话,开发者都可以自定义头像位置的显示方式,显示方式有:靠左显示、靠右显示、不显示。

  自定义步骤:

  1、新建一类继承要改变的会话提供者类,然后重写注解,修改 portraitPosition 的值以完成显示方式。

  注解说明:

  注解名称:ConversationProviderTag。属性:conversationType ,portraitPosition 。

  conversationType 的值不能重复不可修改,它是会话提供者的唯一标识;portraitPosition 用来控制头像的显示方式,它的值可以修改,它的值有:1:靠左显示, 2:靠右显示, 3:不显示。

  模板说明:

  2、重新注册该会话模板,注册方法应在 init 后调用

  自定义示例:

  如何在会话列表中让所单聊会话头像都靠右显示?

  第一步:

  第二步:

  会话页面相关布局文件

  rc_fr_conversation.xml 会话页面布局

  rc_item_message.xml 消息列表单个 item 对应的布局

  您可以通过修改上述布局文件来更改字体大小颜色及背景色等。

  消息展示自定义

  融云 IMKit SDK 中每一种消息类型(要在 UI 展示的)都对应一个 UI 展示的 Provider,开发者可以修改 Provider 的注解属性来完成消息显示的自定义。

  自定义步骤:

  1、新建一类并继承要修改的消息提供者类,然后重写注解。

  注解说明:

  注解名称:ProviderTag。

  注解属性:

  自定义示例:

  如何在会话中让 TextMessage 不显示头像且消息内容横向居中显示?

  第一步:

  自定义 TextMessage 的展示模板

  第二步:

  重新注册该消息模板,注册方法应在 init 后调用

  未读消息数目和新消息提醒

  未读消息数目和新消息气泡在 IMKit 中默认不显示,如需要显示新消息提醒和未读消息数目可以在连接成功后通过下面方法设置。

  image

  新消息大于 1 条即展示,超过 99 条显示为 “99+”,未读消息大于 10 条即展示,超过 150 条显示为 “150+条新消息”。另外,控件的样式可以在  中进行调整。

  可以通过自定义会话列表或者会话界面的适配器,来自定义界面的展示。

  下面以自定义会话界面消息列表的适配器为例,说明如何自定义:

  3.1 自定义会话 fragment 继承自 ConversationFragment,复写 onResolveAdapter() 方法,返回自定义的 adapter。

  另外您的 activity 布局文件中也需要配置成自定义的 fragment。

  3.2 自定义继承 MessageListAdapter 的消息列表适配器,根据需要复写其中的 newView() 或者 bindView() 方法

  输入区域相关概念:

  1、输入区域扩展栏对外接口类为 RongExtension。如图 1

  2、Plugin 是开发者自定义 “+” 号区域展开后的 item,如图 1

  3、EmoticonTab 是开发者自定义 表情 tab 页。如图 2

  一、布局自定义

  部分布局文件如下,您可以通过修改对应的布局文件来调整界面布局,修改背景,更改字体等。

  1、rc_ext_extension_bar.xml 输入框布局文件。它是整个输入框的容器,内部有对各部分组件功能描述。

  2、rc_ext_input_edit_text.xml EditText 布局文件。如果想要替换背景,直接修改即可。

  3、rc_ext_voice_input.xml 语音输入布局文件。

  4、输入框模式自定义。

  另外,在会界面中可以设置输入框的模式。针对聊天会话的语音/文本切换功能、内容输入功能、扩展功能,融云目前提供了 5 种排列组合模式:

  用户可以通过更改  里  ,更改默认输入显示形式。

  二、“+”号扩展区域自定义

  自定义 Plugin

  1、自定义 Plugin 并实现 IPluginModule。 如:

  2、自定义一个 ExtensionModule 继承自 DefaultExtensionModule,复写其中的 getPluginModules() 方法,返回需要展示的 plugin 列表。如:

  3、在初始化之后,取消 SDK 默认的 ExtensionModule,注册自定义的 ExtensionModule, 如下:

  4、视频讲解如何在已默认支持照片、拍照、地理位置、语音通话等功能的情况下,新增自定义及减少默认功能项。

   

  自定义 EmoticonTab

  1、自定义 EmoticonTab 实现 IEmoticonTab。 如:

  2、自定义一个 ExtensionModule 继承自 DefaultExtensionModule,复写其中的 getEmoticonTabs() 方法,返回需要展示的 EmoticonTab 列表。如:

  3、在初始化之后,取消 SDK 默认的 ExtensionModule,注册自定义的 ExtensionModule, 如下:

  三、输入区事件监听

  自定义 fragment 继承 ConversationFragment, 即可获取或者复写 ConversationFragment 里的各个事件,如输入文本内容的变化,发送按钮或者语音按钮的点击事件等。

  详细请参考融云 Android Extension 开发文档。

  1、继承 MessageContent

  新建一自定义消息类,继承 MessageContent 如下面示例代码:

  2、重写和实现方法

  实现  方法,该方法的功能是将消息属性封装成  串,再将  串转成  数组,该方法会在发消息时调用,如下面示例代码:

  覆盖父类的  构造方法,该方法将对收到的消息进行解析,先由  转成  字符串,再将  中内容取出赋值给消息属性。

   已实现  接口,下面需要实现  中的方法:

  3、增加注解信息

  注解名:MessageTag ;属性:value ,flag; value 即 ObjectName 是消息的唯一标识不可以重复,开发者命名时不能以 RC 开头,避免和融云内置消息冲突;flag 是用来定义消息的可操作状态。

  如下面代码段,自定义消息名称  ,vaule 是  ,flag 是  |  表示消息计数且存库。

   值如下表:

  4、注册自定义消息

  自定义消息应在  后注册,代码如下:

  自定义消息在会话列表和会话页面显示。

  步骤:

  1、创建消息提供者

  新建一个消息类继承  类,实现对应接口方法,接口方法如下表:

  代码片段如下:

  2、注册消息模板

  调用  发送自定义消息。需要注意的是,该方法有两个参数 pushContent 和 pushData 。 说明如下:

  pushContent:当客户端离线,接受推送通知时,通知的内容会显示为 pushContent 的内容。如果发送的是自定义消息,。

  pushData:收到该消息的推送时的附加信息。如果设置该字段,用户在收到该消息的推送时,能通过推送监听 onNotificationMessageArrived() 里的参数 PushNotificationMessage 的 getPushData() 方法获取。

  对连接的几点特殊说明:

  connect() 方法在整个应用全局,建议仅调用一次。 SDK 有重连机制,您不需要多次重连。

  connect() 方法的回调仅在调用时回调一次,后续 SDK 的连接状态发生变化时,不会再通过 connect() 的回调返回,而是 通过您设置的连接状态监听器获得。详细请参考连接状态监听。

  重连机制:

  在与服务器的连接断开后,融云会尝试  次重新连接服务器,首次断开  秒后会重新连接,如果仍然连接不成功,会在  秒后(重连间隔时间为上次重连间隔时间乘  )尝试重新连接服务器,以此类推当尝试重连  次后,仍然连不上服务器将不再尝试重新连接,但是在网络情况发生变化或重新打开应用时仍然会再次尝试重连。

  通过 imtoken钱包下载的地址在哪 connect() 的 onError() 回调,或者通过 setConnectionStatusListener() 设置的监听器监听到错误码时, 开发者仅需要关注以下几种连接错误码,其余错误码 SDK 均会进行自动重连,开发者无须处理。

  App Key 错误,请检查您使用的 App Key 是否正确。

  Token 无效

  Token 无效一般有以下两种原因。

  1、Token 错误,请您检查客户端初始化使用的 App Key 和您服务器获取 Token 使用的 App Key 是否一致;

  2、Token 过期,是因为您在开发者后台设置了 Token 过期时间,您需要请求您的服务器重新获取 Token 并再次用新的 Token 建立连接。

  BundleID 不正确

  请检查您 App 的 BundleID 是否正确。

  App Key 被封禁或已删除

  请检查您使用的 App Key 是否正确。

  用户被封禁

  请检查您使用的 Token 是否正确,以及对应的 UserId 是否被封禁。

  当前用户在其他设备上登录,此设备被踢下线

  SDK 没有初始化

  在使用SDK任何功能之前,必须先 Init。

  开发者接口调用时传入的参数错误

  请检查接口调用时传入的参数类型和值。

  如果聊天的用户正在输入文字或者正在录制语音消息,SDK 可以在聊天界面的标题栏中显示和的提示。

  您可以通过  里的开关开启输入状态提醒的功能,目前仅支持单聊。默认  是开启,设置为  为关闭。

  融云 SDK 内部已经处理好逻辑,开发者不需要关心如何发送输入状态,什么时候取消输入状态等细节。只需要注册监听,在回调里更新标题栏即可。

  由于融云只提供  ,所以标题栏的处理需要开发者自己添加。请在集成了  里注册输入状态的监听,您可以在  的  里添加如下代码。

  当前会话正在输入的用户有变化时,会触发 ,回调里携带有当前正在输入的用户列表。对于单聊而言,当对方正在输入时,监听会触发一次;当对方不处于输入状态时,该监听还会触发一次,但是回调里上来的输入用户列表为空,开发者需要在此时取消正在输入的显示,显示原有的标题。

  您可以通过 rc_config.xml 里的开关,开启消息的阅读回执功能。默认 false 为关闭状态,设置成 true 为开启。

  另外,请在 init 之后调用下面方法来设置支持消息回执的会话类型。目前只支持 PRIVATE、GROUP 和 DISCUSSION 三种类型。

  如果不设置的话,默认只有 PRIVATE 类型的会话支持消息回执。

  从 2.6.8 版本开始支持在群组或者讨论组中实现 @ 功能,您可以 @ 指定用户或 @ 所有人。

  1、开启 @ 功能

  @ 功能默认为关闭状态,可以在 rc_config.xml 设置 rc_enable_mentioned_message 为 true 开启 @ 功能。

  2、设置 @ 成员信息提供者

  在会话 activity,通过 RongIM.getInstance().setGroupMembersProvider(String groupId, RongIM.IGroupMemberCallback) 来设置 @ 成员信息提供者。

  您可以参考我们 SealTalk 中的 ConversationActivity 来实现。

  在 activity 的 onCreate 里设置 @ 群组信息提供者:

  3、@ 成员列表界面自定义

  经过第一步打开功能开关后,您就可以长按头像 @ 某人或者输入 @ 字符,弹出成员列表。该成员列表界面您可以自定义。

  自定义步骤如下:

  a. RongMentionManager.setMentionedInputListener(IMentionedInputListenerimtoken官方的下载地方 listener) 设置 @ 字符输入监听器。

  b. 在监听器的回调 onMentionedInput() 里跳转到您自定义的 @ 成员选择界面,并返回 true 。

  c. 在成员选择界面,选择成员后,调用下面的方法返回所选成员信息。

  d. IMentionedInputListener 说明:

  4、@ 所有人功能

  @ 所有人时需要新建一个 MentionedType 为 MentionedType.ALL的MentionedInfo ,并把它设置到 MessageContent中,例:

  您也可以参考 SealTalk 中的 GroupNoticeActivity 来实现。

  如果您使用的是 IMLib SDK 集成,可参考 IMLib @ 功能文档。

  从 2.6.8 版本开始 IMKit 中集成了消息撤回功能,默认为关闭状态。开启后,用户在消息发送成功后的有效时间内长按消息,在弹出菜单中选择“撤回消息”来将这条消息撤回。这条消息将在发送端删除,并提示“你撤回了一条消息”,同时发送撤回指令给接收端,接收端收到撤回指令后,也会把同一条消息删除,提示“XX撤回了一条消息”。

  请在 rc_config.xml 中将 rc_enable_message_recall 置为 true 来开启消息撤回功能。

  rc_message_recall_interval 用来设置撤回消息的有效时间,以秒为单位。当消息发送成功后,只有在有效时间内方能撤回,超过有效时间将不能再执行撤回操作。

  1、 融云官网提供 RedPacket Module 下载,开发者需要在自己应用的 build.gradle 文件中添加依赖 compile project(‘:RedPacket’)。

  2、 SDK 会默认加载红包模块,并在私人、群组会话 “+” 号区域出现红包插件(暂不支持其他会话类型)。

  3、 开发者需要实现 RongIM#setGroupMembersProvider(IGroupMembersProvider) 方法,用于红包功能中展示群组成员信息。

  4、 红包模块提供如下接口,进入”我的钱包”界面:

  您可以通过 rc_config.xml 里的开关,开启多端同步阅读状态功能。默认 false 为关闭状态,设置成 true 为开启。

  分别介绍这三个 fragment 的使用方式:

  会话列表:ConversationListFragment

  聚合后的会话列表:SubConversationListFragment

  会话页面:ConversationFragment

  1、会话列表

  静态集成:

  在 AndroidManifest.xml 会话列表Activity 下面配置 intent-filter。此处会话列表 Activity 以 ConversationListActivity 为例,包名以 io.rong.fast 为例:

  在 ConversationActivity 的布局文件 conversationlis.xml 中静态集成 ConversationListFragment :

  会话列表 Activity 配置对应的布局文件。

  启动会话列表 Activity :

  注意,这个方法里的参数 supportedConversation 是指您的会话列表需要显示的会话类型,以及对应的会话是否聚合显示属性。示例:

  动态集成:

  在 AndroidManifest.xml 中会话列表 Activity 下面配置 intent-filter,以 ConversationListDynamicActivtiy 为例,包名以 io.rong.fast 为例:

  会话列表布局文件 rong_activity.xml,代码示例:

  动态加载 ConversationListFragment,并配置其显示属性

  注意: 动态方式加载 ConversationListFragment 的时候,必须调用 setUri() 方法设置 Fragment 的显示属性,比如需要显示哪些类型的会话,会话是否聚合显示等。 具体的使用方法请参考下面示例:

  启动包含会话列表页的 Activity :

  2、聚合会话列表

  2.1、Activity 集成调用方式

  静态集成:

  在 AndroidManifest.xml 聚合会话列表 Activity 下面配置 intent-filter,以 SubConversationListActivtiy 为例,包名以 io.rong.fast 为例:

  在 subconversationlist.xml 中集成 fragment,subconversationlist.xml 代码示例:

  在 SubConversationListActivtiy 中加载 subconversationlist.xml 即可:

  启动聚合会话列表 Activity:

  动态集成:

  在 AndroidManifest.xml 聚合会话列表 Activity 下面配置 intent-filter,以 SubConversationListDynamicActivtiy 为例,包名以 io.rong.fast 为例:

  加载 subconversationlist.xml 配置文件,代码示例:

  3、会话页面

  3.1、Activity 集成调用方式

  静态集成:

  在 AndroidManifest.xml 会话 Activity 下面配置 intent-filter,以 ConversationActivity 为例,包名以 io.rong.fast 为例:

  在会话 Activity 的布局文件 conversation.xml 中静态集成 ConversationFragment. 代码示例:

  您的会话界面 Activity。

  启动会话页面:

  动态集成:

  在 AndroidManifest.xml 会话 Activity 下面配置 intent-filter,以 ConversationDynamicActivity 为例,包名以 io.rong.fast 为例:

  动态加载 ConversationFragment,根据 intent 里面传来的参数,通过 setUri() 设置 ConversationFragment 相关属性。 示例:

  融云 IMKit SDK 使用 Fragment 方式实现组件的自定义和嵌入功能,提供 Fragment 能力的组件包括:

  会话列表 ConversationListFragment

  聊天会话 ConversationFragment

  聚合会话列表 SubConversationListFragment

  Fragment 的启动参数是通过获取所在 Activity 开启时候所携带的 Intent 中的 Data(即 Uri )来实现的。

  以会话页面的启动 Uri 为例说明:

  如果您的包名为 io.rong.imkit.demo,Id 为 12345 的讨论组的 Uri 就是 ,那么配置 AndroidManifest.xml 文件如下:

  然后,在配置的 Activity 所属的 Layout 布局文件上加入相应的 ConversationFragment。 这样在 Intent 带有如上 Uri 后就会唤起 Activity 且 Layout 中的 ConversationFragment 就可以启动并获得参数。 各个 Fragment 的开启 Uri 和 Intent-filter 参数配置如下:

  会话列表 ConversationListFragment

  聚合后的会话列表 SubConversationListFragment

  会话页面 ConversationFragment

  公众账号页面

  融云 SDK 中已经为开发者做了断网重连的机制处理,开发者不必在断网后做连融云服务器的操作。

  在网络连接断开后,融云会尝试  次重新连接服务器,首次断网  秒后会重新连接,如果仍然连接不成功,会在  秒后(重连间隔时间为上次重连间隔时间乘  )尝度重新连接服务器,以此类推当尝试重连  次后,仍然连不上服务器将不在尝试重新连接,只有在网络情况发生变化或重新打开应用时才会再次尝试重连。

  在获取到以下错误状态码时,会进行重连:

  融云为了客户隐私考虑,既不同步又不保存用户的好友关系。所以,所有用户的好友关系都需要开发者自已实现、管理维护,会话及好友列表中显示好友的昵称及头像信息,需要 App 设置一个用户信息提供者给 IMKit,以便 IMKit 通过用户信息提供者, 来实现在聊天界面和会话列表页中显示好友的昵称和头像。详细请参见用户信息提供者参考文档及好友关系实现示例,视频教程如下:

   

  陌生人发送加好友邀请,可通过  消息类实现。详情请参见  中的联系人(好友)通知消息。

  应用标识是为了我们的 API 能够正确识别并验证您的应用请求而所必要的信息,对于防止账户盗用和滥用有着重要的作用。针对 Android 平台,需要填写包名即 Package Name,就是在  中的  属性值,如图所示。

  另外,您需要 keep 自定义的 BroadcastReceiver 。自定义的 BroadcastReceiver 继承PushMessageReceiver,使用下面的代码是不行的。

  您需要使用下面的代码 keep 自定义的 BroadcastReceiver。

  这里  改成您的应用自定义的完整类名

  Xamarin 中使用融云 SDK (感谢 @孙运天 的分享)。

  集成融云 SDK 过程中,如遇到问题可查看常见状态码及处理表。

imtoken钱包的官方网站下载的地方 imtoken钱包最新官网地方是什么

seo

Related Posts

imtoken钱包的官网下载地方是什么

法治日报记者 丁国锋本报通讯员 张传兵 魏金与传统通过多级银行卡层层转账洗钱不同,具有匿名性、去中心化特点的虚拟币成了犯罪团伙洗钱的新媒介,将“黑钱”通过买卖方式兑换成虚拟币再卖出,一来二去,“黑钱”就洗成了“白钱”。近日,由江苏

imtoken钱包的官方网站下载地址在哪

面对信息化时代,稍不注意就会脱轨,所imtoken钱包官网下载是多少以及时的补充知识才能让我们与时俱进,今天给大家带来的是关于imtoken怎么注册操作和imToken怎么用的一篇文章,相信会给你带来较大的帮助!打开imToken钱包中的ENSDApp,询问你要注册域名的时间长度,选择需

You Missed

imtoken钱包的官网下载地方是什么

  • seo
  • 23 4 月, 2025
  • 14 views

imtoken钱包的官方网站下载地址在哪

  • seo
  • 23 4 月, 2025
  • 15 views

imtoken最新官网是多少

  • seo
  • 23 4 月, 2025
  • 12 views

imtoken钱包的官网的下载的网址在哪里

  • seo
  • 23 4 月, 2025
  • 9 views

imtoken官网的下载的方法在哪里

  • seo
  • 23 4 月, 2025
  • 13 views

imtoken钱包最新官网下载的地址怎么找

  • seo
  • 23 4 月, 2025
  • 14 views