融云@某人

@某人的操作:

  • 在默认情况下@某人关闭状态,必须在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 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>>() {
            @Override
            public void onResponse(Call>> call, Response>> response) {
                if (response.isSuccessful()) {
                    if (response.body().getCode() == 0) {
                        List userList = response.body().getData();
                        ArrayList userInfos = new ArrayList();
                        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>> 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);

*融云该文档传送门

你可能感兴趣的:(融云@某人)