Я хотел бы отображать предупреждающее сообщение при отправке электронной почты. И отправлять только после того, как пользователь нажмет «Отклонить». Я установил постоянное значение true в уведомлениях. Но при отправке электронного письма сообщение будет быстро показано, но электронное письмо будет отправлено сразу, и у меня не будет возможности прочитать сообщение.
Любая идея, что я мог сделать?
Office.context.mailbox.item.notificationMessages.addAsync("cost_warning", {
type: "informationalMessage",
message: "message",
icon : "iconid",
persistent: true
});
event.completed({ allowEvent: true });




Вы можете добиться этого, используя NotificationMessage.getAllAsync API.
Просто установите интервал с помощью setInterval и подождите, пока уведомлениеMessage.getAllAsync() не перестанет возвращать ваше уведомление, а затем вызовите
event.completed({ allowEvent: true });
Но Я бы порекомендовал вам использовать диалоговый API и отображать веб-страницу с необходимой информацией вместо использования сообщения уведомления.
Уведомления не предназначены для блокировки информации, в этом случае больше подходит диалоговое окно.
Редактировать:
// Add your notification message
var interval = window.setInterval(checkNotificationMessages, 2000);
function checkNotificationMessages() {
Office.context.mailbox.item.notificationMessages.getAllAsync(
function (asyncResult) {
if (asyncResult.status != "failed") {
if (asyncResult.value.length == 0 ) {
window.clearInterval(interval);
// Perform some action and decide whether to allow/block send
}
}
}
);
}
@KevinRen Я обновил свой ответ примером setInterval, но все же рекомендую вам использовать диалоги, потому что уведомление неэффективно для сценариев блокировки пользовательского интерфейса.
Спасибо за ответ. диалоговый API, похоже, позволяет отображать другую веб-страницу. Но все, что я хочу, это отобразить диалоговое окно подтверждения. Для подхода setInternal у вас есть пример кода?