繁体   English   中英

使用Angular 4的Outlook加载项

[英]Outlook Add-in using Angular 4

我正在使用angular4开发Outlook加载项。 我无法理解使用角度开发办公室插件的几个概念。

  1. 我是否需要在main.ts中实现Office.initializeOffice.OnReady() ,因为无论何时启动我的应用程序,我都会收到错误,我没有实现Office.OnReady尽管我使用了Offize.initialize
  2. 每次在我的应用程序中使用某些办公组件时,是否需要使用Office.initialize
  3. 如果我在开发模式下运行我的应用程序而不是生产模式,是否会影响我的加载项?
  4. 是否可以在Office对话框中运行我的角度应用程序,而不是在任务窗格中运行,即我的任务窗格中有一个简单的html(只包含一个按钮),当我单击该按钮时,它会在对话框中打开我的角度应用程序。
  5. 或者我可以在对话框中打开我的应用程序的单个组件吗? 如果是,有人可以用示例代码解释。
  1. 您只需要实现其中一个。 在正确初始化Office之前,您可能正在尝试访问某些办公方法。 我一般喜欢做的是有一个带有微调器的加载屏幕,只有办公室初始化后才能从该屏幕导航。

     Office.initialize = function(reason) { window.location.hash = 'apploaded'; } 
  2. 不 - 你只需要初始化一次,除非你正在进行服务器刷新。 只要你留在你的应用程序的上下文而不是刷新整个应用程序但只是在组件之间导航,你应该没问题。

  3. 它可能,特别是如果在本地,你的意思是你在没有Office上下文的情况下这样做(所以你不在客户端)。 我通常如何解决这个问题的方法是永远不要直接访问Office对象,而是始终通过一个服务,如果Office对象/或其子属性发生错误,它不会失败。 而不是

     // calling directly in some component office.context.mailbox.item.to.getAsync 

    我会做

     OfficeService.GetAsync() { if (Office && Office.context && Office.context.mailbox && ...) { // call real method } else { console.log('Detected local mode - without office context') // do a fake test operation instead of the real thing. } } 
  4. 查看functionFile 这为您提供了功能区中的按钮,您可以单击该按钮并执行基本功能。 它仍然会将html加载到一个看不见的浏览器中,但在这种情况下你不会得到一个任务窗格。 这应仅在客户端子集中支持,而不是一切。

  5. 有几种方法可以执行此操作,您只需将清单中的任务窗口条目URL指向该组件URL即可。 像这样

     <SourceLocation DefaultValue="https://randommailaddin.org/component"/> 

并将/component路由映射到您的组件,因此当用户单击该按钮时,它只会加载该组件。 您仍然需要初始化办公室上下文,否则您的功能将无法正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM