的getUser不从GitHub上的网络聊天客户端4.0.4主网络聊天客户端
我今天下载了最后一个版本(4.0.4,从昨天)工作,并在我的网站部署英寸的getUser不从GitHub上的网络聊天客户端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未捕获的(以诺)类型错误:在smooch_local.html无法读取的不确定 财产 '_id':26 在匿名
但是,如果我在promise解决后发送任何消息,然后我尝试恢复userId,变量被定义。在Web Messenger聊天的以前的3.x.x版本中没有发生这种情况。
此代码返回一个有效的用户名:
<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>
这是控制台ouptut:
12:21:20.165的初始化已完成! 12:21:22.947 smooch_local.html:28 1102fdee2b7d3c2abb639cbe
有谁知道它是否是一个错误或4.x版的版本中的新功能?
感谢
这是预期的Web Messenger的4.x的行为 - 用户在初始化时不再自动创建。相反,用户创建被推迟到他们发送消息之后。这是在release notes提到V4.0.0
Web Messenger now uses a new optimized initialization sequence. This new sequence alters the timing of key events such as creating a new user or establishing a websocket connection.
或者,您可以pre-create与Web Messenger的被初始化之前userId
用户,并使用login
方法来初始化作为该用户,但是这可能会或可能根据您的使用情况不适合。
感谢您的答复。现在我尝试恢复userId,如果未定义,则为新会话创建一个新的userId,而不分配JWT令牌。现在的问题是,我发出了一个** Smooch.destroy()**命令,并在此之后,Smooch.Init({APPID: 'myAppId' 用户名: 'newUserId'})。此时,Smooch发出一个错误消息:“TypeError:无法读取未定义的属性”推送“。感谢 – jlgordo
这是一个应该被固定在V4.0.5中的错误(https://github.com/smooch/smooch-web/releases/tag/4.0.5) – michaels