我们使用Outlook JS Add-In API开发了一个Outlook 365插件。这基本上就是这样 使用Angular 2构建的单页面应用程序,它使用Outlook API进行查询 当前电子邮件项目的详细信息。在我们最新一轮的测试中,我们发现了一个问题 插件未加载到Outlook 2016 Windows桌面客户端(64位)。 这似乎只发生在下面列出的几台机器上:
清单详情 - 最低邮箱API v1.2
症状
尝试解决方案
工作设置
问题的示例设置
编辑:添加了清单文件。
<?xml version="1.0" encoding="UTF-8"?>
<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"
xsi:type="MailApp">
<Id>xxxx</Id>
<Version>1.0.0.0</Version>
<ProviderName>xxxx</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="xxxx"/>
<Description DefaultValue="xxxx"/>
<IconUrl DefaultValue="xxxx"/>
<HighResolutionIconUrl DefaultValue="xxxxx"/>
<SupportUrl DefaultValue="xxxx" />
<AppDomains>
<AppDomain>xxxx</AppDomain>
<AppDomain>xxxx</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="xxxx"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="xxxx"/>
</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 xsi:type="ItemIs" ItemType="Message" FormType="Read"/>
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read"/>
<Rule xsi:type="ItemHasKnownEntity" EntityType="PhoneNumber"/>
<Rule xsi:type="ItemHasKnownEntity" EntityType="EmailAddress"/>
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Description resid="residDescription"/>
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<!-- Message Read Form -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadDemoGroup">
<Label resid="groupLabel"/>
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="funcReadButtonLabel"/>
<Supertip>
<Title resid="funcReadSuperTipTitle"/>
<Description resid="funcReadSuperTipDescription"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="blue-icon-16"/>
<bt:Image size="32" resid="blue-icon-32"/>
<bt:Image size="80" resid="blue-icon-80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="composeTaskPaneUrl"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<!-- add information on resources -->
<bt:Images>
<!-- Blue icon -->
<bt:Image id="blue-icon-16" DefaultValue="xxxx"/>
<bt:Image id="blue-icon-32" DefaultValue="xxxx"/>
<bt:Image id="blue-icon-80" DefaultValue="xxxx"/>
</bt:Images>
<bt:Urls>
<bt:Url id="composeTaskPaneUrl" DefaultValue="xxxx"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue="xxxx"/>
<bt:String id="funcReadButtonLabel" DefaultValue="xxxx"/>
<bt:String id="funcReadSuperTipTitle" DefaultValue="xxxx"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="funcReadSuperTipDescription" DefaultValue="xxxx"/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
编辑:
事实证明,该问题是由尝试访问localStorage API时引发的错误引起的。由于一些奇怪的原因,它导致灰色屏幕而不是插件卡在加载状态。我能够通过运行以下命令来解决问题:
icacls %userprofile%\Appdata\LocalLow /t /setintegritylevel (OI)(CI)L
用于托管Office 365插件的IE浏览器控件的嵌入式版本在AppData文件夹的Windows Integrity设置为高时暴露localStorage API时出现问题。
在参考以下SO问题后我找到了解决方案: Access Denied for localstorage in IE10
参考