使用git源码运行hbuider控制台会出现id和friendNickName获取不到的情况

来源:9-1 聊天页面讲解与展示

Sky_YiBai

2018-10-24

你好,
我使用git上的代码在android手机上直接运行的时候,会出现以下2个问题,辛苦帮忙尽快解答一下
问题一:
1. 我首先用用户a登录,hbuider控制台不会有错误
2. 当我把a用户退出登录,此时就会如下错误: 代码时imooc-chatlist.html中的325行var chatSnapshotList = app.getUserChatSnapshot(user.id); 因为app全局变量user中信息因为已经没有用户登录,导致为空,但是我想的问的是此处为什么在退出登录后,loadingChatSnapshot();方法还在持续调用??
图片描述

  问题二:
  ![图片描述](http://img.mukewang.com/szimg/5bcfe5fb0001e13610040099.jpg)
写回答

12回答

风间影月

2018-10-29

这是一个小bug,解决方案如下:

  1. 重新登录后刷新个人页面的信息,由于目前个人页面已经有自定义事件refresh,所以只需要在登录成功后刷新即可,代码如下

    //img.mukewang.com/szimg/5bd680920001647109150338.jpg

  2. 退出登录后一直会保持keepalive,然后报错,这个时候只需要增加全局用户判断就可,就是判断当前是否有用户,由于退出登录后,用户信息不会在缓存里,所以直接使用全局的工具类拿到用户并且判断接口,只需要相应的地方判断,代码如下:

    //img.mukewang.com/szimg/5bd680f6000151e509780210.jpg

0
1
weixin_慕莱坞7272753
修改之后还是会出现friendNickName获取不到的情况,退出后登录别的账号还是显示之前用户的消息列表通讯录和发现,只有个人页面是对的
2022-05-07
共1条回复

Sky_YiBai

提问者

2018-10-28

在index.html中这部分的代码吗?怎么处理?~


// 获取当前的webview对象

var indexWebview = plus.webview.currentWebview()

// 向当前的主页webview追加子页的4张webview对象

for (var i = 0 ; i < kexinArray.length ; i ++) {

var kexinPage = plus.webview.create(kexinArray[i].pageUrl, 

kexinArray[i].pageId,

kexinStyle);

// 隐藏webview窗口

kexinPage.hide();

// 追加每一个子页面到当前主页面

indexWebview.append(kexinPage);

}

plus.webview.show(kexinArray[0].pageId);

// 批量绑定tap事件,展示不同的页面

mui(".mui-bar-tab").on("tap", "a", function() {

var tabindex = this.getAttribute("tabindex");

// 显示点击的tab选项所对应的页面

plus.webview.show(kexinArray[tabindex].pageId, "fade-in", 200);

// 隐藏其他的不需要的页面

for (var i = 0 ; i < kexinArray.length ; i ++) {

if (i != tabindex) {

plus.webview.hide(kexinArray[i].pageId, "fade-out", 200);

}

}

})

// 延时加载

setTimeout("initData()", "1000");


// 预加载

function initData() {

var kexin_chatlist = plus.webview.getWebviewById("kexin-chatlist.html");

mui.fire(kexin_chatlist, "refresh");

var kexin_me = plus.webview.getWebviewById("kexin-me.html");

mui.fire(kexin_me, "refresh");

}


0
10
风间影月
回复
Sky_YiBai
没事的,有问题尽管提出好了,这是应该的,就是你没发现,也会有其他同学发现的,也会提出,都是一样的,我空了解决一下,会在群里说的,也会在这里回复你,放心吧,这是小问题
2018-10-28
共10条回复

Sky_YiBai

提问者

2018-10-28

好的,那辛苦老师出差回来尽快帮忙看一下吧。我看了登录代码那块儿,我理解主要是index.html、login.html和app.js,还是不太知道怎么做。

0
1
风间影月
你这个需要数据重新渲染,把这个步骤做一下就行
2018-10-28
共1条回复

Sky_YiBai

提问者

2018-10-28

现在的问题是,如果我登出不销毁,下次登录展示的都是前一个用户的信息。如果我销毁,下次登录的时候,页面不展示了。我是不是应该在登录成功的时候做点儿什么?

0
2
风间影月
也就是页面重写赋值
2018-10-28
共2条回复

Sky_YiBai

提问者

2018-10-28

您好,

      还是销毁的问题,现在退出登录之后,我会把页面都销毁一下,但是用新账号登录后,新账号的所有页面都是空白的了?辛苦帮忙看看怎么解决?

     我买这个视频主要是想学习一下netty,不想在用户端这块儿纠结这么久,辛苦帮忙把这部分问题解决一下。


// 用户退出

var link_logout = document.getElementById("link_logout");

link_logout.addEventListener("tap", function(){

app.userLogout();

mui.openWindow("login.html", "login.html");

// 销毁之前的所有页面

plus.webview.close("kexin-chatlist.html");

plus.webview.close("kexin-contact.html");

plus.webview.close("kexin-discover.html");

//plus.webview.close("kexin-me.html");

});


0
2
风间影月
你可以继续往下学习,这个不影响的
2018-10-28
共2条回复

Sky_YiBai

提问者

2018-10-24

再问一个问题:

a用户登出后,b用户登录,默认进入我的页面,信息还是a的?

0
1
风间影月
页面没刷新,销毁后,并且设置默认打开页面进去就可以了。有些问题大家都在群里讨论过得,建议加群,大家交流会更方便哈
2018-10-24
共1条回复

Sky_YiBai

提问者

2018-10-24

再问个问题:

如果父页面包含一个子页面,子页面中有类似的心跳或者循环调用,我直接销毁父页面,子页面也会销毁掉是吗

0
1
风间影月
没遇到过,说不准,你可以试试
2018-10-24
共1条回复

Sky_YiBai

提问者

2018-10-24

我的理解,我是要在退出登录的时候,可以所有页面都先销毁一下

0
1
风间影月
是的啊
2018-10-24
共1条回复

Sky_YiBai

提问者

2018-10-24

// 用户退出

var link_logout = document.getElementById("link_logout");

link_logout.addEventListener("tap", function(){

app.userLogout();

mui.openWindow("login.html", "login.html");

mui.plus.webview.close("imooc-chatlist.html");

});


我看文档是这个mui.plus.webview.close("imooc-chatlist.html");?但是运行的时候还说找不到webview


0
1
风间影月
去掉 mui. 试试
2018-10-24
共1条回复

Sky_YiBai

提问者

2018-10-24

怎么销毁页面?~

0
1
风间影月
你先去查一下api,看看能否通过自己去解决问题。h5 plus文档里都有。我直接告诉你答案就没意思啦,你先去找找看
2018-10-24
共1条回复

Sky_YiBai

提问者

2018-10-24

//img.mukewang.com/szimg/5bcfe8920001e13610040099.jpg

那这个问题呢?

0
1
风间影月
同一个方法的啊,页面销毁了就ok了
2018-10-24
共1条回复

风间影月

2018-10-24

这是一个心跳,用户退出了,清除了缓存,但是页面没有销毁,这是个小bug,退出的时候销毁页面即可。

0
0

Netty+Spring Boot仿微信-全栈开发高性能后台及客户端

SpringBoot/Netty+MUI全栈开发 同时搞定后台+ Android&iOS

1498 学习 · 684 问题

查看课程