Reputation: 497
We have developed an Outlook 365 plugin using Outlook JS Add-In API. This is essentially a single page application built using Angular 2 that uses the Outlook API to query details of the current email item. During our latest round of testing we have noticed an issue with the plugin not loading in the Outlook 2016 Windows Desktop Client (64bit). This seems to only occur on a few machines as listed below:
Manifest Details
The Symptoms
Attempted Solutions
Working Setup
Sample Setup with the Issue
The manifest file:
<?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>
Upvotes: 4
Views: 987
Reputation: 31760
The issue is caused by an error which is thrown when attempting to access the localStorage API. For some odd reason it is causing a grey screen instead of the plugin been stuck in the loading state. To fix the issue, run the following command:
icacls %userprofile%\Appdata\LocalLow /t /setintegritylevel (OI)(CI)L
The embedded version of the IE browser control which is used to host the Office 365 plugins has an issue with exposing the localStorage API when Windows Integrity of the AppData folder is set to high.
I found the solution after referencing the following SO question: Access Denied for localstorage in IE10
This answer was posted as an edit to the question Outlook 365 plugin not loading in Outlook 2016 Windows Desktop Client by the OP Sameera Jayaseckara under CC BY-SA 3.0.
Upvotes: 0