Events Outlook加载项(日历事件):重复周期始终为空
我有一个用于日历事件的Outlook加载项,带有一个任务窗格。从窗格中,我获得事件数据:Events Outlook加载项(日历事件):重复周期始终为空,events,null,calendar,outlook-web-addins,recurrence,Events,Null,Calendar,Outlook Web Addins,Recurrence,我有一个用于日历事件的Outlook加载项,带有一个任务窗格。从窗格中,我获得事件数据: date start: item.start.getAsync() date end: item.end.getAsync() recurrence: item.recurrence.getAsync() 日期是确定的,但重复周期总是空的(状态为“成功”),尽管我在事件中更改了重复周期 有什么问题吗 我正在使用开发Outlook 365 Web 谢谢 迭戈 编辑: 当重复周期发生变化时,
date start: item.start.getAsync()
date end: item.end.getAsync()
recurrence: item.recurrence.getAsync()
日期是确定的,但重复周期总是空的(状态为“成功”),尽管我在事件中更改了重复周期
有什么问题吗
我正在使用开发Outlook 365 Web
谢谢
迭戈
编辑:
当重复周期发生变化时,我收到事件:
Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handleRecurrenceChanged);
但是在handleRecurrenceChanged()中,递归始终为null…*这个问题在OWA上已经解决。recurrence.getAsync()不应再返回null。使用您在注释中给我的代码,我在循环发生更改时获得它:
Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler, callback);
但是只有“handler”函数被调用,其中递归是有效的:console.log(JSON.stringify(eventarg.recurrence))
- 为什么不调用回调函数
- 为什么我不能用我的函数获得重复:
Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged,HandlerRecurrenceChange)代码>
在本例中,调用了handleRecurrenceChange,但当我调用item.recurrence.getAsync()时,我得到的结果是result.value=null
如果在需要递归时调用item.recurrence.getAsync()也是一样的(我得到null)
如果可能的话,我希望在需要的时候获得重复(我可以正确地获得所有其他事件值),而不在更改时保存它
问候,
Diego使用我的test taskpane.js,我做了以下测试:
g_item.recurrence.getAsync
-->recurrence:valid value('daily')//确定
g_item.recurrence.getAsync
-->recurrence:valid value('daily')//确定
g_item.recurrence.getAsync
-->recurrence:previous value('daily')//错误
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));
});
});
}
});
Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler);
document.getElementById("button").onclick = onClick;
我添加了一个同步处理程序和一个按钮。在“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));
});
});
}
});
Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler);
document.getElementById("button").onclick = onClick;
任务窗格打开时:
function handler(eventarg) {
console.log("handler. recurrence: " + JSON.stringify(eventarg.recurrence));
}
***如果选择了重复,然后任务窗格处于打开状态,则onClick方法将正确读取该值。感谢您报告有关重复为空的问题。它已被列入我们的积压工作。很遗憾,我们现在没有时间分享,谢谢你的回复。那么我没有做错什么?不知怎的,我不能得到复发?你好,迭戈,迭戈,我们还在调查这个问题。同时,您可以使用GRAPH Api访问会议的重复性作为解决方法:您好,此链接用于安排重复性会议,不是吗?我还可以通过GRAPH Api获得现有会议的重复性吗?谢谢,item.recurrence.getAsync()仍然为null。asyncResult.value为NULL,尽管我在事件重复组合中选择了“每天”。。。我从item.XXX.getAsync()获得的所有其他值都正常。我正在Outlook 365上测试web@Diego您能告诉我们outlook-web-16.01.js的前几行吗?打开外接程序时,您将能够看到对此文件进行的网络调用(您可以在开发人员控制台中找到它)。前3-4行包含我们要验证的JS文件版本。很抱歉,我在控制台中看不到任何对outlook-web-16.01.JS的调用。无论是从Visual Studio启动Outlook web还是打开日历事件(我的加载项所在的位置)并使用加载项选项。。。我可以看到我的加载项跟踪,和一些js调用,但不是这个。。。它确切出现在什么时候?@Diego每当打开外接程序时都会获得它。能否关闭并重新打开加载项,然后检查是否可以看到获取outlook web JS文件的调用?抱歉,我恐怕看不到JS调用。我不确定什么是“打开外接程序”:我从VisualStudio项目中测试外接程序,该项目使用Outlook web在浏览器中打开一个新选项卡。然后我可以打开控制台,但我看不到outlook web-***.js跟踪,也看不到当我转到“日历”和(在一个新事件中)使用我的加载项时……我们无法在我们这边重现此问题。您能为我们提供一个相同的插件示例吗?另外,您能否在复制问题时共享屏幕的视频记录?下面是为了更好地理解处理程序和回调之间的区别。1.处理程序->将在RecurrenceChange 2上调用。callback->将在添加处理程序文档链接后立即调用:您能给我一个电子邮件地址向您发送文件吗?谢谢。请在上提供您的样品插件admin@a830edad9050849405E20081103.onmicrosoft.com?我们无法访问您的文件。Outlook会阻止您上载的JS文件。您可以尝试重新发送文件,创建一个zip文件,或者将文件托管在某个地方并发送URL。我重新发送了电子邮件,请告诉我您是否可以访问这些文件。谢谢