@某人的操作:
在默认情况下@某人关闭状态,必须在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);