reactjs - 有没有办法在不使用 Yeoman 生成器的情况下将 React Web 应用程序作为插件嵌入 Outlook 中
问题描述
我正在尝试在 Office 365 Outlook 中嵌入 web react 应用程序作为任务窗格加载项,而不使用 Yeoman 生成器。
我构建了一个空的 React 应用程序(https://github.com/facebook/create-react-app#readme),并从 Office JS 站点下载了一个默认的邮件清单文件(.xml)(见下文)。我可以成功地将其作为自定义加载项进行旁加载,并成功显示在功能区上,但是当我尝试将其显示为任务窗格时。它抛出了这个错误:
加载项错误:我们无法从 localhost 打开此加载项
我在这里尝试了解决方案:https ://docs.microsoft.com/en-us/office/troubleshoot/office-suite-issues/cannot-open-add-in-from-localhost 添加本地环回豁免,但是它仍然不起作用。
我不确定到底是什么问题。我尝试了许多不同的清单文件,这就是其中之一:Office JS 站点的默认邮件清单文件 (.xml):
<?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"
xsi:type="MailApp">
<!--IMPORTANT! Id must be unique for each add-in. If you copy this manifest ensure that you change this id to your own GUID. -->
<Id>971E76EF-D73E-567F-ADAE-5A76B39052CF</Id>
<Version>1.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>en-us</DefaultLocale>
<DisplayName DefaultValue="YouTube"/>
<Description DefaultValue=
"Watch YouTube videos referenced in the e-mails you
receive without leaving your email client.">
<Override Locale="fr-fr" Value="Visualisez les vidéos
YouTube références dans vos courriers électronique
directement depuis Outlook."/>
</Description>
<!-- Change the following lines to specify -->
<!-- the web server that hosts the icon files. -->
<IconUrl DefaultValue="https://contoso.com/assets/icon-64.png" />
<HighResolutionIconUrl DefaultValue="https://contoso.com/assets/hi-res-icon.png" />
<SupportUrl DefaultValue="[Insert the URL of a page that provides support information for the app]" />
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="Mailbox" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<!-- Change the following line to specify -->
<!-- the web server that hosts the HTML file. -->
<SourceLocation DefaultValue=
"https://webserver/YouTube/YouTube_read_desktop.htm" />
<RequestedHeight>216</RequestedHeight>
</DesktopSettings>
<TabletSettings>
<!-- Change the following line to specify -->
<!-- the web server that hosts the HTML file. -->
<SourceLocation DefaultValue=
"https://webserver/YouTube/YouTube_read_tablet.htm" />
<RequestedHeight>216</RequestedHeight>
</TabletSettings>
</Form>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<!-- Change the following line to specify -->
<!-- the web server that hosts the HTML file. -->
<SourceLocation DefaultValue=
"https://webserver/YouTube/YouTube_compose_desktop.htm" />
</DesktopSettings>
<TabletSettings>
<!-- Change the following line to specify -->
<!-- the web server that hosts the HTML file. -->
<SourceLocation DefaultValue=
"https://webserver/YouTube/YouTube_compose_tablet.htm" />
</TabletSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="RuleCollection" Mode="And">
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read" />
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
</Rule>
<Rule xsi:type="ItemHasRegularExpressionMatch"
PropertyName="BodyAsPlaintext" RegExName="VideoURL"
RegExValue=
"http://(((www\.)?youtube\.com/watch\?v=)|
(youtu\.be/))[a-zA-Z0-9_-]{11}" />
</Rule>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
</Rule>
</Rule>
</OfficeApp>
解决方案
推荐阅读
- javascript - 为什么我的方法没有将结果推送到我的阵列?
- javascript - 如何从 ReactJS 中的 addEventListener 调用函数?
- javascript - 如何将 java LWJGL 游戏转换为 javascript/web 程序集?
- firebase - 为什么 Firepad CodeMirror 示例在我的项目中没有任何颜色编码的语法?
- pandas - 熊猫数据框和应用 - 无法弄清楚为什么结果值为负
- ruby - gem 安装 jekyll 失败
- c# - c#正则表达式与前瞻失败
- python-3.x - 使用 Selenium 遍历 li 标记没有从列表的前两个元素中获取 .text
- javascript - 如何导出 object.assign 并将其内容用于同一文件的另一个功能中的验证?
- java - 如何解决数组索引 OutOfBoundsException