集成融云遇到的问题合集

1.集成融云的时候,如何提供用户头像和群组头像

通过实现内容提供者。调用自己服务器的接口来获取。
文档地址如下:http://www.rongcloud.cn/docs/android.html#user_info

代码如下:在MainActivity中。

设置群组信息提供者。和用户信息提供者。用户信息提供者回调接口getUserInfo(String s)s是用户的融云id。然后调用接口获取。获取之后根据数据提供UserInfo对象。然后刷新缓存,则用户信息更新。群组信息同理。

设置用户信息代码如下(在onCreate方法中调用初始化融云的方法)

private void initRongCloud(){
		final Conversation.ConversationType[] conversationTypes = {
				Conversation.ConversationType.PRIVATE,
				Conversation.ConversationType.GROUP, Conversation.ConversationType.SYSTEM,
				Conversation.ConversationType.PUBLIC_SERVICE, Conversation.ConversationType.APP_PUBLIC_SERVICE
		};
		RongIM.getInstance().addUnReadMessageCountChangedObserver(this, conversationTypes);
//提供个人信息提供者 和群组用户提供者
		RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
			@Override
			public UserInfo getUserInfo(String s) {
				//从本地或者服务器获取userInfo对象。s是 融云的id。也是本地账户对应的融云id  //后期获取到了,刷新一下列表
				getUserDataFromWeb(s);
				return null;

			}
		}, true);
		RongIM.setGroupInfoProvider(new RongIM.GroupInfoProvider() {
			@Override
			public Group getGroupInfo(String s) {
				//调用接口获取groupInfo信息。然后刷新 refreshGroupInfoCache(group);
//				Group group=new Group(s,"群组名称",null);
				getRongCloudGroupInfo(s);

				return null;
			}
		},true);
	}



获取用户信息,刷新缓存代码,其中的entity是调用本地接口返回的对象

	UserInfo userInfo = new UserInfo(entity.getUid(),name, Uri.parse(AppConfig.PICURL + url));
	//刷新一下缓存
	RongIM.getInstance().refreshUserInfoCache(userInfo);

2.多个联系人发送来消息,收到通知。点击通知跳转不到消息列表。

是什么原因。 原因是清单文件的配置问题。

需要在清单文件中的消息列表的activity中加上intent-filter的配置,代码如下,记得改为自己的包名

<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data
                    android:host="注意:改为自己的包名"
                    android:pathPrefix="/conversationlist"
                    android:scheme="rong" />
            </intent-filter>




3.底部新消息提示的红点。有时候会突然变得很大。(各别现象)解决办法。在布局文件对控件做了改动

多加了

 android:maxLines="1"
                android:visibility="invisible"


 

<com.jianzhile.app.ui.rongcloud.DragPointView
                android:id="@+id/seal_num"
                android:layout_width="19dp"
                android:layout_height="19dp"
                android:layout_gravity="right"
                android:layout_marginTop="2dp"
                android:layout_toRightOf="@+id/ll"
                android:textColor="@android:color/white"
                android:textSize="12sp"
                android:ellipsize="end"
                android:maxLines="1"
                android:visibility="invisible" />



4.多人聊天。第一次进入头像都正常。然后上下滑动的时候。头像就会出现错位。但是id是正确的。头像发生错位。

出现原因是本地接口的问题。没有头像和昵称。没有返回数据。所以拿不到这个用户的id,没有做这个uid的刷新。所以头像的位置放的是之前控件存放的头像。解决办法。就是计算没有头像和昵称也要返回uid。可以设置默认头像。然后刷新缓存数据。


5.如何进入聊天界面自动触发自定义plugin的点击事情,在会话页面

 代码如下。这个如果写错。之前出现过一个bug就是表情发送不出去了。别的都正常。MyPlugin是自定义的plugin,实现的IPluginModule接口。onClick是实现的接口。我们主动调用一下MyPlugin的onClick接口,难点在于如何获取RongExtension对象。这个是重点。

ConversationFragment  fragment = (ConversationFragment) getSupportFragmentManager().findFragmentById(R.id.conversation);

        Uri uri = Uri.parse("rong://" + getApplicationInfo().packageName).buildUpon()
                .appendPath("conversation").appendPath(mConversationType.getName().toLowerCase())
                .appendQueryParameter("targetId", mTargetId).build();

        fragment.setUri(uri);
        //TODO  主动调用自定义的plugin的onClick方法。触发自定义职位链接的点击事件,判断职位id不为空的情况下发送。
        if(!TextUtils.isEmpty(jobs_name)) {

            RongExtension rongExtension = (RongExtension) fragment.getView().findViewById(R.id.rc_extension);
            if(rongExtension!=null) {
                rongExtension.setConversation(mConversationType, mTargetId);
                MyPlugin.getPlugin().onClick(fragment, rongExtension);
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值