Outlook加载项任务窗格和SharePoint 2019内部部署
我想为Outlook开发一个现代化的Office插件。此加载项应支持与SP2016、SP2019和SPO的连接。对于这些SharePoint连接,我想使用SP-PNP-JS,但无法获取SharePoint上下文 我正在使用yeoman生成器创建一个新的Outlook加载项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安装到
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"));
});