Я создал приложение javascript (aka UWA), чтобы играть с моим белинским wemo, а затем включить или отключить личность с Cortana. Следующая функция хорошо называется, но Cortana заканчивается проблемой. Если я удалю вызов HTTP-вызова, программа работает нормально. Кто может сказать мне, что случилось со следующей функцией, потому что нет больше деталей не подвергаются, к сожалению, (конечно, в реальной программе заменяется правом URL):Cortana столкнулся с проблемой
function setWemo(status) {
WinJS.xhr({ url: "<url>" }).then(function() {
var userMessage = new voiceCommands.VoiceCommandUserMessage();
userMessage.spokenMessage = "Light is now turned " + status;
var statusContentTiles = [];
var statusTile = new voiceCommands.VoiceCommandContentTile();
statusTile.contentTileType = voiceCommands.VoiceCommandContentTileType.titleOnly;
statusTile.title = "Light is set to: " + status;
statusContentTiles.push(statusTile);
var response = voiceCommands.VoiceCommandResponse.createResponse(userMessage, statusContentTiles);
return voiceServiceConnection.reportSuccessAsync(response);
}).done();
}
Мой первый вопрос будет, вы выдачи любого вида вызова [ReportProgressAsync] (https://msdn.microsoft.com/en-us/library/windows/apps/windows .applicationmodel.voicecommands.voicecommandserviceconnection.reportprogressasync.aspx)? Cortana не позволит фоновой задаче вешать бесконечно, вам нужно послать * что-то, чтобы показывать пользователя не реже одного раза в 5 секунд, и получение сообщения о ходе работы должно быть первым, что вы делаете. Если этот вызов xhr занимает некоторое время, я бы запустил что-то, что периодически посылает сообщения о выполнении параллельно во время его запуска. –