当前位置: 首页 > 知识库问答 >
问题:

仅Outlook桌面上的web外接程序加载问题

韦智刚
2023-03-14

我遇到一个问题,我的外接程序在Outlook Online中运行良好,但在Outlook Desktop中无法运行。从清单成功激活外接程序,但加载后失败。这是一个React+TypeScript项目(在Webstorm中使用NodeJS+webpack进行测试)。

    null
//myapp.tsx
import TestComponent from './components/TestComponent';
import * as $ from 'jquery';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { AppContainer } from 'react-hot-loader';

const render = (Component) => {

    ReactDOM.render(
        
            
        ,
        document.getElementById('container')
    );
};

Office.initialize = function () {

    $(document).ready(function () {

        console.log('====myapp.tsx.Office.initialize(): entered');

        render(TestComponent);
    });
};

if ((module as any).hot) {

    console.log('====index.tsx.module() foo');

    (module as any).hot.accept('./components/App', () => {
        const NextApp = require('./components/App').default;
        render(NextApp);
    });
}

//TestComponent.tsx

import * as React from 'react';
import { CompoundButton } from 'office-ui-fabric-react/lib/Button';

//============
// BAD CODE!
//import foo = require('../scripts/test.jsx');
//============

export default class TestComponent extends React.Component {

    render() {

        console.log('====TestComponent.render()');

        //============
        // BAD CODE!
        //foo.testFunction();
        //============

        return(
            
                Create account
            
        );
    }
}

//test.jsx

export function testFunction(){
    console.log("test.jsx: testFunction");
}

共有1个答案

云炜
2023-03-14

Office2013和2016 for Windows(桌面应用程序)使用嵌入式IE11浏览器进行渲染。IE11不支持Edge、Chrome和Firefox中的许多最新JS特性。因此,您要么需要对为IE11提供替代路径所需的功能进行多层填充。

一个快速解决方案可能只是改变TypeScript生成JS的方式,使其与IE11兼容:

{
    "compilerOptions": {
        "skipLibCheck": true,
        "lib": [ "es5", "dom", "es2015.promise" ]
    }
}
 类似资料:
  • 我的Outlook web外接程序正在使用Office.Context.Mailbox.GetCallbackTokenAsync方法,在选项中传递“is rest=true”。这是为了获得一个授权令牌,我可以使用它向Outlook REST API发出请求。这在Outlook 2019、OWA和Office 365 Windows桌面客户端上运行良好,但在Outlook 2016上不起作用。尝试

  • 问题内容: 我一直在Windows 7 PC上使用libgdx开发一个简单的游戏。最近,我买了一个Macbook Pro(山狮)。我下载并安装了JRE 7和eclipse,然后克隆并导入了该项目。但是,尽管在运行台式机版本时代码中没有错误,但JVM加载并迅速死亡。我在控制台中收到的错误如下: 我已经将JRE 7添加到了构建路径库中,仍然没有乐趣。 桌面通过以下代码启动: 真的卡在这个女士和男士身上

  • 我的场景如下: 我有一个部署到servlet容器的webapp.war。此webapp.war在web-inf/lib中包含以下库: lib_a.jar lib_b.jar 我还有一个库,比如lib_vendor.jar,由于许可问题,我无法在webapp/web-inf/lib中部署,所以我让客户在应用程序安装后在tomcat/lib中复制这个库。但是由于lib_vendor.jar需要在web

  • 问题内容: 我正在使用SWING开发一个单用户桌面应用程序。我对使用java.sql api的这种应用程序有一点经验,发现它一点都不舒服… 在我的新应用程序中,我第一次尝试使用JPA,我读了很多教程,这些教程使我几乎了解了我所需要的所有内容,但是找不到真正的Java Desktop应用程序的好例子。 我正在考虑使用以下架构,但不知道我是否正确… 我想创建一个MyPersistenceUnit类:

  • 我已经尝试解决这个问题两周了,但似乎找不到解决方案,它只发生在Appium desktop上,设置为。 我将文件夹的所有权从更改为,并将权限设置为,但仍然面临一个问题:我无法更改该文件的权限,因为它是一个临时文件夹,每次运行新的appium会话时,它的名称都会不断更改。 以下是错误消息: 处理该命令时发生未知的服务器端错误。原始错误:应用程序位于'/tmp/。mount_应用程序。Ap8xEj5P

  • 我目前正在从事一个Java桌面应用程序项目。这是一个现有的应用程序,我被要求修改它。 他们说我必须使用RESTful Web服务将数据从桌面应用程序发送到Web应用程序。所以我搜索了一些关于RESTful Web服务的信息(因为我对那类东西不熟悉,对Java也不熟悉),我看到一些使用RESTful Web服务的非Web应用程序,但非Web应用程序是Maven项目。我需要修改的现有java桌面应用程