今日、Web チャット クライアントの最後のリリース (昨日の 4.0.4) を github からダウンロードし、自分の Web サイトにデプロイしました。
新しいユーザーが検出されると、この新しいユーザーが最初のメッセージを送信するまで 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 リリースの新機能なのか、誰にもわかりませんか?
ありがとう