我今天从 github 下载了 webchat 客户端的最后一个版本(昨天的 4.0.4)并部署在我的网站中。
我已经检测到 Smooch.getUser() 在检测到新用户时返回“未定义”,直到该新用户发送他的第一条消息,但返回用户不会发生这种情况。
<script>
Smooch.on('ready', function(){
console.log('the init has completed!');
});
var skPromise = Smooch.init({appId: 'myAppId'});
skPromise.then(
function()
{
var u = Smooch.getUser();
console.log(u._id);
});
);
</script>
smooch_local.html:26 Uncaught (in promise) TypeError: Cannot read property '_id' of undefined at smooch_local.html:26 at anonymous
但是,如果我在承诺解决后发送任何消息,然后我尝试恢复 userId,变量就会被定义。在以前的 3.xx 版本的 Web Messenger 聊天中并没有以这种方式发生。
此代码返回一个有效的 userId:
<script>
Smooch.on('ready', function(){
console.log('the init has completed!');
});
var skPromise = Smooch.init({appId: 'myAppId'});
skPromise.then(
function()
{
Smooch.sendMessage({type: 'text', text: 'x'}).then(
function(){
var u = Smooch.getUser();
console.log(u._id);
});
}
);
</script>
这是控制台输出:
12:21:20.165 初始化完成! 12:21:22.947 smooch_local.html:28 1102fdee2b7d3c2abb639cbe
有谁知道这是 v4.x 版本的错误还是新功能?
谢谢