(云信)记录接网易云信android版遇到的一些问题

在项目开始的时候,聊天第三方sdk选择了网易云信,原因很简单,我们的竞争对手用的就是云信,所以老板要求也用这个sdk,在接入云信sdk后,遇到了一些问题,现在记录一下。

1 根据我们项目的需求,我们创建了一个活动小组(同时也会创建一个云信的群组),创建者可以取消这个活动,取消这个活动的时候,服务器要解散群组,这个时候,我们客户端依然会显示这个解散的群组,我们理解的是解散了就应该自己删除掉,进入app的时候,加载最近会话的聊天页面的时候,就不显示了,但是云信没有删除,我们问了他们的技术,最后的解决方式是解散群组会有一条通知:NotificationType.DismissTeam,我们在加载会话列表的时候,根据这个通知类型进行判断,然后手动删除这个群组。

 NIMClient.getService(MsgService.class).queryRecentContacts().setCallback(new RequestCallbackWrapper<List<RecentContact>>() {

                        @Override
                        public void onResult(int code, List<RecentContact> recents, Throwable exception) {
                            if (code != ResponseCode.RES_SUCCESS || recents == null) {
                                return;
                            }
                            loadedRecents.clear();
                            Log.e("recents ==>","聊天列表长度:"+recents.size());
                            for(RecentContact recentContact:recents){
                                MsgAttachment attachment = recentContact.getAttachment();
                                if(attachment instanceof NotificationAttachment){
                                    NotificationAttachment notificationAttachment = (NotificationAttachment) attachment;
                                    String teamNotificationText = TeamNotificationHelper
                                            .getTeamNotificationText(recentContact.getContactId(),
                                                    recentContact.getFromAccount(),
                                                    (NotificationAttachment) recentContact.getAttachment());
                                    if(notificationAttachment.getType() == NotificationType.DismissTeam){
                                        NIMClient.getService(MsgService.class).deleteRecentContact(recentContact);
                                        NIMClient.getService(MsgService.class).clearChattingHistory(recentContact.getContactId(), recentContact.getSessionType());
                                    }else{
                                            loadedRecents.add(recentContact);
                                    }
                                }else{
                                    loadedRecents.add(recentContact);
                                }

                            }
                            // 初次加载,更新离线的消息中是否有@我的消息
                            for (RecentContact loadedRecent : loadedRecents) {
                                if (loadedRecent.getSessionType() == SessionTypeEnum.Team) {
                                    updateOfflineContactAited(loadedRecent);
                                }
                            }
                            // 此处如果是界面刚初始化,为了防止界面卡顿,可先在后台把需要显示的用户资料和群组资料在后台加载好,然后再刷新界面
                            //
                            msgLoaded = true;
                            if (isAdded()) {
                                onRecentContactsLoaded();
                            }
                        }
                    });

这样就把解散的群组给删除掉了。

2 app卸载重新安装后,原来在最近会话的群组,现在不显示了,除非有人在群组发消息才会再次显示,解决方式就是去云信的后台,把漫游功能打开,默认是关闭的,问了云信客服,漫游是不收费的。


3 我们创建了两个应用key,一个是正式环境的,另一个用作测试的,使用测试的key的时候,发现登录有问题

https://api.netease.im/nimserver/user/create.action 时出现错误,返回信息:{"desc":"CurTime is illegal","code":414}

后来发现这个curTIme是秒数不是毫秒数,然后云信技术让我们把测试的appkey和secret给他,然后完了刷新一下秘钥就行了。

再遇到问题的话,会再补充。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值