融云@某人

作者: Yobin_He | 来源:发表于2019-05-06 22:16 被阅读0次

@某人的操作:

  • 在默认情况下@某人关闭状态,必须在rc_config.xml中开启,
    目标位置:Imkit的values里面的rc_enable_metion_message置为true,这时长按图像和监听@触发跳转就会开启;

  • 自定义触发跳转:
    ① 如果不需要自定义需要设置RongIM.getInstance().setGroupMembersProvider,这个提供触发跳转那个页面对应的数据;

    /**
     * 设置在群组中@成员信息提供者
     */
    private void setAtSomebodyFunction() {
        RongIM.getInstance().setGroupMembersProvider(new RongIM.IGroupMembersProvider() {
            @Override
            public void getGroupMembers(String s, RongIM.IGroupMemberCallback iGroupMemberCallback) {
                //获取群组成员信息列表
                requestGroupMemberNewForAt(s);
                groupMemberCallback = iGroupMemberCallback;
            }
        });
    }
    
    /**
     * 获取群组成员信息
     *
     * @param s
     */
    private RongIM.IGroupMemberCallback groupMemberCallback;
    
    private void requestGroupMemberNewForAt(String s) {
    
        TreeMap<String, String> map1 = new TreeMap<>();
        map1.put("gid", String.valueOf(mTargetId)); //groupId 用于获取群信息的字段
        Constants.SN = Tools.getSignHttpSign(map1, Constants.OBTAIN_GROUP_USER);
        RestClient.getInstance().obtainGroupMemeber(Constants.NEW_URL + Constants.OBTAIN_GROUP_USER, map1).enqueue(new Callback<BaseResponse<List<User_RY>>>() {
            @Override
            public void onResponse(Call<BaseResponse<List<User_RY>>> call, Response<BaseResponse<List<User_RY>>> response) {
                if (response.isSuccessful()) {
                    if (response.body().getCode() == 0) {
                        List<User_RY> userList = response.body().getData();
                        ArrayList<UserInfo> userInfos = new ArrayList<UserInfo>();
                        if (null != response.body().getData() && response.body().getData().size() > 0) {
    
                            for (User_RY user : userList) {
                                if (null != user.getUid()) {
                                    UserInfo userInfo = new UserInfo(user.getUid(), user.getNick_name(), Uri.parse(user.getAvatar()));
                                    userInfos.add(userInfo);
                                }
                            }
                        }
    
                        groupMemberCallback.onGetGroupMembersResult(userInfos);
                    } else {
    
    
                    }
                } else
    
                {
    
                }
            }
    
            @Override
            public void onFailure(Call<BaseResponse<List<User_RY>>> call, Throwable t) {
    
                groupMemberCallback.onGetGroupMembersResult(null);
            }
        });
    }
    
    

    ②如果需要自定义就需要设置RongMentionManager.setMentionedInputListener(IMentionedInputListener listener) 设置 @ 字符输入监听器 默认的return false,所以需要return true,在这里面跳转到触发跳转页面 ,当选择完成要设置 在选择页面设置RongMentionManager.getInstance().mentionMember(item.userInfo);

  • 处理@所有人:
    如果选择所人,可以监听发送监听信息,通过字段@所有人的需要设置方法:

MentionedInfo mentionedInfo = new MentionedInfo(MentionedInfo.MentionedType.ALL, null, null);
              txtMsg.setMentionedInfo(mentionedInfo);

*融云该文档传送门

相关文章

  • 融云@某人

    @某人的操作: 在默认情况下@某人关闭状态,必须在rc_config.xml中开启,目标位置:Imkit的valu...

  • 融云

    融云登录账号:771764208@qq.com 调试地址:调试地址 Server开发文档地址:Server开发文档...

  • IM 的集成

    1.1:融云的分类(简介) 1.1.1:融云 IM 界面组件 - RongCloud IMKit IMKit 是融...

  • 融云聊天之iOS笔记摘录

    1. 概念 融云SDK的系统架构 相关名词 2. 集成融云 登录融云 断开融云 会话列表页 聊天内容页 3. IM...

  • 音视频服务开发指南

    概述 融云音视频服务提供两类 SDK: 融云 Call 界面组件 - RongCloud CallKit 融云 C...

  • 融云 Flutter IM SDK 解析

    融云 Flutter IM SDK 解析 最近准备使用融云的 Flutter SDK,所以顺便记录一下。 融云 F...

  • 极光推送,融云即时通讯 原理

    融云即时通讯: 1,App Key / Secret : 相当于当前 App 在融云的账号和密码,是融云SDK连接...

  • Swift3.0使用Alamofire获取融云SDK的token

    最近使用融云SDK,需要向融云服务器请求一个token参数参考融云官方文档:http://www.rongclou...

  • 关于集成融云的时候遇到的一些问题

    由于项目中需要集成融云的客服,进入融云官网SDK 快速入门 - 融云即时通讯技术文档_基础服务开发指南 根...

  • iOS 融云 修改融云自带样式

    第一次接触融云的即时聊天,在使用过程中确实遇到了很多问题,现在将一些耗时比较长,且网上少有文章的问题做一下记录,方...

网友评论

    本文标题:融云@某人

    本文链接:https://www.haomeiwen.com/subject/bkpjoqtx.html