Outlook加载项任务窗格和SharePoint 2019内部部署

Outlook加载项任务窗格和SharePoint 2019内部部署,sharepoint,outlook,office-js,outlook-web-addins,pnp-js,Sharepoint,Outlook,Office Js,Outlook Web Addins,Pnp Js,我想为Outlook开发一个现代化的Office插件。此加载项应支持与SP2016、SP2019和SPO的连接。对于这些SharePoint连接,我想使用SP-PNP-JS,但无法获取SharePoint上下文 我正在使用yeoman生成器创建一个新的Outlook加载项 yo office--projectType react--name“Outlook AddIn”--主机Outlook--ts true 对Outlook客户端和OWA的侧加载工作正常。在本例中,我将sp pnp js安装到

我想为Outlook开发一个现代化的Office插件。此加载项应支持与SP2016、SP2019和SPO的连接。对于这些SharePoint连接,我想使用SP-PNP-JS,但无法获取SharePoint上下文

我正在使用yeoman生成器创建一个新的Outlook加载项

yo office--projectType react--name“Outlook AddIn”--主机Outlook--ts true

对Outlook客户端和OWA的侧加载工作正常。在本例中,我将sp pnp js安装到这个项目中

npm安装@pnp/logging@pnp/common@pnp/odata@pnp/sp@pnp/nodejs——保存

并尝试将SharePoint上下文与来自的每个示例连接

我还尝试与sp AddInHelper建立连接

几天过去了,我真的很沮丧。是否可以在Office加载项中使用sp pnp js?是否有人提出了在办公场所使用SP-PNP-JS插件或替代REST和JSOM的解决方案

我正在使用SPO进行开发。此加载项应集成在Outlook 2019和SharePoint 2016/2019内部部署中

谢谢你的帮助

更新-2021/04/11 我创建了一个新的纯ReactJS项目,没有yeoman生成器。在这个项目中,我通过npm安装添加了sp pnp js,并从office.js CDN链接了office.js

taskpane.html


Outlook加载项
编译后的文件将上载到SharePoint。现在,我获得了正确的上下文,并且我的SharePoint操作正在正确运行。我已使用以下命令初始化Office:

index.js

导入“office ui fabric react/dist/css/fabric.min.css”; 导入“react app polyfill/ie11”; 导入“react app polyfill/stable”; 从“React”导入React; 从“react dom”导入react dom; 导入“./index.css”; 从“/Taskpane”导入任务窗格; 从“officeui/lib/Icons”导入{initializecons}; /*全局组件、文档、办公室、模块、需求、任务窗格*/ 日志(“正在初始化…”) Office.initialize=函数(原因){console.log(原因)}; Office.onReady(函数(){ 日志(“Office就绪!”); 初始化图标(); render(,document.getElementById(“根”)); });
只有在IE11中,我才能在
Office.initialize
行中得到错误
'SCRIPT5009:'Office'未定义。Outlook桌面客户端中的任务窗格为空,因为客户端正在调用iexplorer.exe。我花了很多天来解决这个问题。我非常感谢您的建议。

我没有sp pnp js的经验,但我可以问一个问题并澄清一些有助于解决挫折感的问题。问题是,一旦身份验证开始工作,您计划使用该库做什么?我注意到它包括一种调用graph API的方法,例如,Office插件还有一种调用graph API的替代方法。其次,从库的角度来看,Office插件属于“任意JavaScript项目”而不是“SharePoint框架”项目。这一点很重要,因为库文档的某些部分特定于SharePoint Framework。感谢您的支持。是否可以在前提下使用图形API?在我的例子中,我创建了一个新的纯ReactJS项目,没有使用yeoman生成器。在这个项目中,我通过npm安装添加了sp pnp js,并从官方的“evergreen”office.js CDN链接了office.js。编译后的文件将上载到SharePoint。现在我获得了正确的上下文,可以运行SharePoint操作了。只有在IE11中,我才发现错误“SCRIPT5009:“Office”未定义。Outlook桌面客户端中的任务窗格为空,因为客户端正在调用iexplorer.exe。请阅读我的更新。不幸的是,本地没有图形API。PnP js在上受支持,请随时打开任何PnP js问题。
<!doctype html>
<html lang="en" data-framework="javascript">

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=11" />
    <link rel="icon" href="/favicon.ico" />
    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"
        type="text/javascript"></script>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta name="description" content="Web site created using create-react-app" />
    <link rel="apple-touch-icon" href="logo192.png" />
    <title>Outlook Add-In</title>
    <link href="<sharepoint-tenant>/SiteAssets/office-addin/static/css/2.486e1214.chunk.css"
        rel="stylesheet">
    <link href="<sharepoint-tenant>/SiteAssets/office-addin/static/css/main.d5778436.chunk.css"
        rel="stylesheet">
</head>
import "office-ui-fabric-react/dist/css/fabric.min.css";
import 'react-app-polyfill/ie11';
import 'react-app-polyfill/stable';
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import Taskpane from './Taskpane';
import { initializeIcons } from "office-ui-fabric-react/lib/Icons";
/* global Component, document, Office, module, require, Taskpane */

console.log("initializing...")
Office.initialize = function(reason) {console.log(reason)};
Office.onReady(function() {
  console.log("Office ready!");
  initializeIcons();
  ReactDOM.render(<Taskpane />, document.getElementById("root"));
});