首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么没有UI的Office外接程序命令没有响应,而从任务窗格发送的同一命令却有响应?

为什么没有UI的Office外接程序命令没有响应,而从任务窗格发送的同一命令却有响应?
EN

Stack Overflow用户
提问于 2019-06-04 22:41:08
回答 2查看 358关注 0票数 0

我有一个outlook插件,可以在按下命令按钮时重定向到外部网站。在Office Outlook Online中一切正常,但在Office Outlook Desktop上不执行该命令。为什么会这样呢?

该插件托管在基于Ubuntu14.04的node.js服务器上,该服务器具有https的有效证书。如果我使用按钮从任务窗格调用相同的命令,则会执行该命令并重定向用户。

我在设置服务器时遇到了很多问题,但现在服务器正在运行,文件可以毫无问题地访问。我认为这可能是我的自签名证书有问题,并将其更改为来自可信来源的证书,但输出是相同的。但是,在本地运行它,就像从我的windows系统启动本地node.js服务器并通过本地主机调用它一样。正在执行该命令。

我希望Outlook桌面中命令按钮的执行方式类似于Outlook web中的执行方式。它不会显示任何错误消息。notificationMessage只是不断地告诉我,它正在执行命令,但是什么也没有发生,甚至没有变化。我必须通过关闭窗口来强制任务停止。

我看到其他人提到了类似的问题(How to get 'Commands' button working in Office Addins?),但它的答案对我的问题没有帮助。

在基于ubuntu的nodejs服务器上托管我的插件时,Outlook Desktop上没有执行该命令,这是我的问题。如果有人知道如何解决这个问题,或者看到有人遇到了同样的问题,我会非常感激。

谢谢。

Manifest.xml (由于保密原因,实际的servername被交换为"ourServer“bc )。GotoSite -> window.open("https://google.com")

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0" xsi:type="MailApp">
  <Id>0ec8dc72-014b-4426-acd3-f06edeb15052</Id>
  <Version>1.0.0.0</Version>
  <ProviderName>Convien</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="Convien"/>
  <Description DefaultValue="Come together... right now!"/>
  <IconUrl DefaultValue="https://ourServer.convien.com:3000/assets/Convien32X32.png"/>
  <HighResolutionIconUrl DefaultValue="https://ourServer.convien.com:3000/assets/Convien80X80.png"/>
  <SupportUrl DefaultValue="https://convien.com"/>
  <AppDomains>
    <AppDomain>convien.com</AppDomain>
    <AppDomain>https://easy.convien.com</AppDomain>
    <AppDomain>https://www.google.com</AppDomain>
    <AppDomain>https://stress.convien.com/convien_outlook/</AppDomain>
  </AppDomains>
  <Hosts>
    <Host Name="Mailbox"/>
  </Hosts>
  <Requirements>
    <Sets>
      <Set Name="Mailbox" MinVersion="1.1"/>
    </Sets>
  </Requirements>
  <FormSettings>
    <Form xsi:type="ItemRead">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://ourServer.convien.com:3000/src/taskpane/taskpane.html"/>
        <RequestedHeight>250</RequestedHeight>
      </DesktopSettings>
    </Form>
  </FormSettings>
  <Permissions>ReadWriteItem</Permissions>
  <Rule xsi:type="RuleCollection" Mode="Or">
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit"/>
    <Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit"/>
  </Rule>
  <DisableEntityHighlighting>false</DisableEntityHighlighting>
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
    <Requirements>
      <bt:Sets DefaultMinVersion="1.3">
        <bt:Set Name="Mailbox"/>
      </bt:Sets>
    </Requirements>
    <Hosts>
      <Host xsi:type="MailHost">
        <DesktopFormFactor>
          <FunctionFile resid="Commands.Url"/>
          <ExtensionPoint xsi:type="MessageReadCommandSurface">
            <OfficeTab id="TabDefault">
              <Group id="msgReadGroup">
                <Label resid="GroupLabel"/>                
                <Control xsi:type="Button" id="linkButton">
                  <Label resid="LinkButton.Label"/>
                  <Supertip>
                    <Title resid="LinkButton.Label"/>
                    <Description resid="LinkButton.Tooltip"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Icon.80x80"/>
                    <bt:Image size="32" resid="Icon.80x80"/>
                    <bt:Image size="80" resid="Icon.80x80"/>
                  </Icon>
                  <Action xsi:type="ExecuteFunction">
                    <FunctionName>GotoSite</FunctionName>
                  </Action>
                </Control>
              </Group>

            </OfficeTab>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="Icon.16x16" DefaultValue="https://ourServer.convien.com:3000/assets/Convien80X80.png"/>
        <bt:Image id="Icon.32x32" DefaultValue="https://ourServer.convien.com:3000/assets/Convien80X80.png"/>
        <bt:Image id="Icon.80x80" DefaultValue="https://ourServer.convien.com:3000/assets/Convien80X80.png"/>
      </bt:Images>
      <bt:Urls>
        <bt:Url id="Commands.Url" DefaultValue="https://ourServer.convien.com:3000/src/commands/commands.html"/>
        <bt:Url id="Taskpane.Url" DefaultValue="https://ourServer.convien.com:3000/src/taskpane/taskpane.html"/>
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="GroupLabel" DefaultValue="Meeting Place"/>
        <bt:String id="LinkButton.Label" DefaultValue="Convien Easy"/>

      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="LinkButton.Tooltip" DefaultValue="Opens Convien Easy web application."/>        
      </bt:LongStrings>
    </Resources>
  </VersionOverrides>
</OfficeApp>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-06 07:39:47

有两种可能性:要么是函数没有成功执行,要么是特定的“重定向”代码正在运行,但没有产生预期的效果。由于您提到代码是从任务窗格中工作的,因此此答案将涵盖第一种可能性。

“正在进行中”通知消息指示在执行的函数结束时未调用event.completed()。第一步是验证是否定义了event.completed(),然后单步执行代码以确保函数成功运行。您也可以尝试调用notificationMessages接口来查看消息中的可视效果。

This doc描述了如何在清单中实现FunctionName定义的函数。对于异步代码,实际上应该在回调中调用event.completed()。

调试没有UI的外接程序很棘手,因为只有在外接程序运行时,才会附加F12 Debugger。您可以使用Fiddler验证.html是否加载成功(这有助于排除证书错误)。如果需要,您可以附加Visual Studio脚本调试器,它应该在外接程序执行之间保持附加(为此,调用event.completed()很重要,否则第二次执行将排队,等待第一次执行完成)。

票数 0
EN

Stack Overflow用户

发布于 2019-06-06 09:15:26

我很确定问题是这样的(至少在word桌面上)。

1)命令和任务窗格在不同的javascript上下文中工作。即,在命令窗格中运行的函数不能访问任务窗格。

2)命令功能区是无记忆的。每当你点击一个按钮,它们就会启动一个新的无头js上下文。

3)因为它是无头的,所以不能打开新的窗口。

4)由于功能区已与任务窗格断开连接,因此任何window.location更改尝试都不会重定向任务窗格。

我通过使用websocket从服务器上退回命令来“解决”这个问题。是。我是认真的。

顺便说一句,Websocket是我验证按钮是否正常工作的方式。即使我对你的重定向是如何工作的是错误的,这也是一个非常有用的调试工具,因为f12调试器不能附加到命令功能区。

请用一个巨大的充气锤子敲击那些为我“设计”这个的人的头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56446156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档