Visio Javascript API 加载失败。缺少 Microsoft.Office.WebExtension
Visio Javascript API fails on load. Missing Microsoft.Office.WebExtension
我在 SharePoint 框架 Web 部件中遇到 Visio Javascript API 问题。它一直在工作,但现在失败了。 'Visio' 对象未创建,因为文件 https://appsforoffice.microsoft.com/embedded/1.0/visio-web-embedded.js.
中缺少对 Microsoft.Office.WebExtension 的引用
错误:
未捕获的 ReferenceError:Microsoft 未定义
在 c (visio-web-embedded.js:26)
在visio-web-embedded.js这个函数中引用Microsoft.Office.WebExtension:
function c() {
Microsoft.Office.WebExtension.onReadyInternal().then((function() {
return i()
}
)).then((function() {
...
}()
}
))
}
经过一些搜索后,我添加了对 https://appsforoffice.microsoft.com/lib/1/hosted/office.js 的引用并获得了对 Microsoft.Office.WebExtension 的访问权限,但随后 visio-web-embedded.js 中的另一个对象失败了。
错误:
visio-web-embedded.js:26 Uncaught (in promise) TypeError: Cannot read 属性 'richApiMessageManager' of undefined
在 visio-web-embedded.js:26
case 5:
return X.promisify((function(e) {
return OSF.DDA.RichApi.richApiMessageManager.addHandlerAsync("richApiMessage", r, e)
}));
如何正确使用visio-web-embedded.js?有没有我缺少的推荐人。
pnp示例项目React-Visio也有同样的问题:
https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-visio
Visio Online 中可能有更新 API。您可以查看我的示例,它静态包含 Visio 嵌入并且看起来仍然有效:
https://github.com/nbelyh/VisioOnlineSpfxWebPart
代码包括这样的 Visio API(在 package.json
中):
"dependencies": {
"@microsoft/office-js": "^1.1.40",
然后在config/config.json
:
"externals": {
"VisioEmbed": {
"path": "node_modules/@microsoft/office-js/embedded/visio-web-embedded.debug.js",
"globalName": "Visio"
}
},
请注意,这是一个静态引用(即嵌入代码将打包到您的 Web 部件中,而不是从在线 Microsoft 站点引用)。此外,如果将它与您提到的示例进行比较,它是一种不同的方法。
虽然给你一些稳定性 - 你可以确定你正在使用的库版本相互兼容。
我在 SharePoint 框架 Web 部件中遇到 Visio Javascript API 问题。它一直在工作,但现在失败了。 'Visio' 对象未创建,因为文件 https://appsforoffice.microsoft.com/embedded/1.0/visio-web-embedded.js.
中缺少对 Microsoft.Office.WebExtension 的引用错误: 未捕获的 ReferenceError:Microsoft 未定义 在 c (visio-web-embedded.js:26)
在visio-web-embedded.js这个函数中引用Microsoft.Office.WebExtension:
function c() {
Microsoft.Office.WebExtension.onReadyInternal().then((function() {
return i()
}
)).then((function() {
...
}()
}
))
}
经过一些搜索后,我添加了对 https://appsforoffice.microsoft.com/lib/1/hosted/office.js 的引用并获得了对 Microsoft.Office.WebExtension 的访问权限,但随后 visio-web-embedded.js 中的另一个对象失败了。
错误: visio-web-embedded.js:26 Uncaught (in promise) TypeError: Cannot read 属性 'richApiMessageManager' of undefined 在 visio-web-embedded.js:26
case 5:
return X.promisify((function(e) {
return OSF.DDA.RichApi.richApiMessageManager.addHandlerAsync("richApiMessage", r, e)
}));
如何正确使用visio-web-embedded.js?有没有我缺少的推荐人。
pnp示例项目React-Visio也有同样的问题: https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-visio
Visio Online 中可能有更新 API。您可以查看我的示例,它静态包含 Visio 嵌入并且看起来仍然有效:
https://github.com/nbelyh/VisioOnlineSpfxWebPart
代码包括这样的 Visio API(在 package.json
中):
"dependencies": {
"@microsoft/office-js": "^1.1.40",
然后在config/config.json
:
"externals": {
"VisioEmbed": {
"path": "node_modules/@microsoft/office-js/embedded/visio-web-embedded.debug.js",
"globalName": "Visio"
}
},
请注意,这是一个静态引用(即嵌入代码将打包到您的 Web 部件中,而不是从在线 Microsoft 站点引用)。此外,如果将它与您提到的示例进行比较,它是一种不同的方法。 虽然给你一些稳定性 - 你可以确定你正在使用的库版本相互兼容。