使用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();方法还在持续调用??
问题二:

12回答
-
风间影月
2018-10-29
这是一个小bug,解决方案如下:
重新登录后刷新个人页面的信息,由于目前个人页面已经有自定义事件refresh,所以只需要在登录成功后刷新即可,代码如下
退出登录后一直会保持keepalive,然后报错,这个时候只需要增加全局用户判断就可,就是判断当前是否有用户,由于退出登录后,用户信息不会在缓存里,所以直接使用全局的工具类拿到用户并且判断接口,只需要相应的地方判断,代码如下:
012022-05-07 -
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");
}
0102018-10-28 -
Sky_YiBai
提问者
2018-10-28
好的,那辛苦老师出差回来尽快帮忙看一下吧。我看了登录代码那块儿,我理解主要是index.html、login.html和app.js,还是不太知道怎么做。
012018-10-28 -
Sky_YiBai
提问者
2018-10-28
现在的问题是,如果我登出不销毁,下次登录展示的都是前一个用户的信息。如果我销毁,下次登录的时候,页面不展示了。我是不是应该在登录成功的时候做点儿什么?
022018-10-28 -
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");
});
022018-10-28 -
Sky_YiBai
提问者
2018-10-24
再问一个问题:
a用户登出后,b用户登录,默认进入我的页面,信息还是a的?
012018-10-24 -
Sky_YiBai
提问者
2018-10-24
再问个问题:
如果父页面包含一个子页面,子页面中有类似的心跳或者循环调用,我直接销毁父页面,子页面也会销毁掉是吗
012018-10-24 -
Sky_YiBai
提问者
2018-10-24
我的理解,我是要在退出登录的时候,可以所有页面都先销毁一下
012018-10-24 -
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
012018-10-24 -
Sky_YiBai
提问者
2018-10-24
怎么销毁页面?~
012018-10-24 -
Sky_YiBai
提问者
2018-10-24
那这个问题呢?
012018-10-24 -
风间影月
2018-10-24
这是一个心跳,用户退出了,清除了缓存,但是页面没有销毁,这是个小bug,退出的时候销毁页面即可。
00
Netty+Spring Boot仿微信-全栈开发高性能后台及客户端
1498 学习 · 684 问题
相似问题
回答 1
回答 1