Office365 onSend REST API更改不会反映在UI中

Office365 onSend REST API更改不会反映在UI中,office365,outlook-addin,office-js,Office365,Outlook Addin,Office Js,我们正在使用onSend事件来执行一些restapi请求,这些请求可能会更改和更新收件人和草稿项正文 但是,这些更改不会反映在UI中,当onSend事件完成并允许send事件继续时,草稿项将在没有通过REST API成功进行更改的情况下发送 这种行为能否得到证实?如果是这样, 是否有办法在完成onSend事件之前强制更新UI 我们试图通过REST API发送该项来解决此问题,但在以下情况下,这与完成onSend事件冲突: 通过REST API+onSendEvent.completeallowE

我们正在使用onSend事件来执行一些restapi请求,这些请求可能会更改和更新收件人和草稿项正文

但是,这些更改不会反映在UI中,当onSend事件完成并允许send事件继续时,草稿项将在没有通过REST API成功进行更改的情况下发送

这种行为能否得到证实?如果是这样, 是否有办法在完成onSend事件之前强制更新UI

我们试图通过REST API发送该项来解决此问题,但在以下情况下,这与完成onSend事件冲突:

通过REST API+onSendEvent.completeallowEvent发送的项:true 我相信在OWA尝试发送项目后,我们会收到一个UI错误

通过REST API+onSendEvent.completeallowEvent发送的项:false 没有发生任何事情,UI仍然显示不再存在的草稿


可能是REST API不会导致UI更新,但使用OfficeJs API dóes更新UI吗?

是的,这种行为是预期的。RESTAPI修改服务器上的副本。在onSend事件期间,消息仍在客户端上,并且消息本身不一定更新到服务器。onSend事件完成后,OWA会将消息更新到服务器并发送。在onSend事件期间或onSend事件完成之前,无法强制OWA从服务器进行更新。

这是正确的。如果通过Microsoft Graph访问草稿,则客户端不知道是否进行了任何更改。这与office.js不同,在office.js中,您所做的任何更改都是在Outlook客户端中进行的,因此客户端显然会立即知道。或者是这样,或者是在OnSend事件中打开了阻止UI的对话框这一事实是我们的期望。但奇怪的是,我们发现,如果没有从OnSend事件启动的对话框,REST API dóes似乎会更新OWA UI。我们的问题似乎已经解决了,尽管我们使用了RESTAPI。如果发现问题,我们可以切换回office.js方法调用。但这怎么可能呢?OWA是否使用轮询检查可能的更新?因此,发送前的UI更新是巧合吗?Marc之前所说的是正确的。使用office.js API进行更改时,会对客户端中的消息进行更改。当OWA继续发送时,消息将在服务器上更新并随后发送。至于为什么您似乎看到更新的UI带有一个对话框:正如您所问的,通常,OWA确实从服务器获得更新—例如,将草稿保存在另一个客户端中,您将在OWA中看到草稿。因此,在发送之前更新的UI实际上是一个巧合/时机,我不相信您可以依赖它作为一个健壮的解决方案。