Outlook加载项(日历事件):重复周期始终为空



我有一个用于日历事件的Outlook加载项,带有一个任务窗格。从窗格中,我得到了事件数据:

date start: item.start.getAsync()
date end: item.end.getAsync()
recurrence: item.recurrence.getAsync()

日期可以,但重复周期始终为空(状态="成功"(,尽管我更改了事件中的重复周期。。。

问题出在哪里?

我正在使用开发Outlook 365 Web

谢谢,

Diego

编辑:当重复发生更改时,我收到事件:

Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handleRecurrenceChanged);

但在handleRecurrenceChanged((中,重复周期始终为null…*

使用您在注释中给我的代码,当它发生变化时,我会得到递归:

Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler, callback);

但只调用了重复有效的"handler"函数:console.log(JSON.stringfy(eventarg.recurrence((;

  • 为什么不调用回调函数
  • 为什么我不能用我的功能获得复发:

Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handleRecurrenceChange);

在这种情况下,会调用handleRecurrenceChange,但当我调用item.recurrence.getAsync((时,我会得到result.value=null

如果我需要重复(我得到null(时调用item.recurrence.getAsync((,也是如此

如果可能的话,我希望在需要的时候获得重复(我可以正确地获得所有其他事件值(,而不在更改时保存。。。

问候,

Diego

使用我的测试任务窗格.js,我进行了以下测试:

  1. 创建一个"新事件">

  2. 更改定期("每日"(

  3. 打开任务窗格并读取"Office.onReady(("方法中的重复周期g_item.recurrence.getAsync->重复周期:有效值("每日"(//确定!

  4. 关闭任务窗格

  5. 打开任务窗格并读取"Office.onReady(("方法中的重复周期g_item.recurrence.getAsync->重复周期:有效值("每日"(//确定!

  6. 关闭任务窗格

  7. 将定期更改为"每周">

  8. 打开任务窗格并读取"Office.onReady(("方法中的重复周期g_item.recurrence.getAsync->重复:以前的值("每日"(//错误!

***如果任务窗格第一次打开时为"无重复周期",请关闭任务窗格,将重复周期(更改为任意(,然后再次打开任务窗格-->重复:空

我的"onReady"方法:

Office.onReady(info => {
g_item = Office.context.mailbox.item;
if (!g_item.itemId) {
g_item.saveAsync(function (result) {
g_item.recurrence.getAsync((asyncResult) => {
if (asyncResult.status !== Office.AsyncResultStatus.Failed)
console.log("Recurrence: " + JSON.stringify(asyncResult.value));
});
});
}
});

我添加了一个同步处理程序和一个按钮。在"onReady"方法中:

Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler);
document.getElementById("button").onclick = onClick;

打开任务窗格:

  1. 将重复周期从"每日"更改为"每周",并更改事件主题-->递归处理程序称为TWICE:a( 旧的重复值("每日"(//错误?b( 新值("周"(//好!

    我的处理方法:

    function handler(eventarg) {
    console.log("handler. recurrence: " + JSON.stringify(eventarg.recurrence));
    }
    
  2. 按下我的按钮。重复跟踪具有OLD值("每日"(,但主题跟踪具有NEW值(与项目中的其他值一样,但重复…(

    function onClick() {
    g_item.recurrence.getAsync((result) => {
    // Recurrence: previous value ('daily')   ERROR!
    if (result.status === Office.AsyncResultStatus.Succeeded)
    console.log("onClick. Recurrence: " + JSON.stringify(result.value));     
    });
    g_item.subject.getAsync((result) => {
    // Subject: ALWAYS printed properly when changed!!! 
    if (result.status === Office.AsyncResultStatus.Succeeded)
    console.log("onClick. Subject: " + JSON.stringify(result.value));
    });
    }
    

***如果选择了重复周期,然后打开了任务窗格,onClick方法将正确读取值。

这个问题已经从我们的OWA端解决。recurrent.getAsync((不应该再返回null。

相关内容

  • 没有找到相关文章

最新更新