SAPUI5 iFrame src路径

2020-08-19 05:21发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我有一个sapui5-app,我想使用iframe调用html页面。

我从start.js开始。 两个文件start.js和viewer.html位于同一文件夹/p​​df/web

var oiFrame = new sap.ui.core.HTML({content:" "});

如果我使用WEBIDE,则正确加载了HTML页面。

但是,在部署后,未找到viewer.html,因为该应用程序是从完全错误的位置加载它的。

应从以下位置加载:

http://domain.com :PORT/sap/bc/ui5_ui5/namespace/app /~EBB10196E937C17BB58FB508D8D9774B~5/pdf/web/viewer.html

,但是从以下地址加载: http://domain.com :PORT/pdf/web /viewer.html

如何将正确的路径输入iframe? 是否有JavaScript函数可以检索正确的路径?

非常感谢您的帮助

付费偷看设置
发送
3条回答
N-Moskvin
1楼-- · 2020-08-19 06:08

这是html的正常行为。

可能会将iframe的给定路径添加到主机名中。 /app/~EBB10196E937C17BB58FB508D8D9774B~5/pdf/web/viewer.html

并配置neo-app.json以将所有带有"/img/sap/bc/ui5_ui5/namespace/app"的请求重定向到您的后端 目的地。 然后可以在Web ide和fiori启动板中使用。

Kr,Wouter

土豆飞人
2楼-- · 2020-08-19 05:58

感谢Wouter提供neo-app.json的提示。 我认为这是要走的路,也许也是与manifest.json相互作用。

但是,如何将iframe与manifest/neo-app中的条目链接? 到目前为止,我仅在预定义的odata-models中使用了manifest/neo-app。

在neo-app/manifest中必须配置什么,如何从iframe调用它?

清单中有一个条目:

" sap.platform.abap":{" uri":"/img/sap/bc/ui5_ui5/namespace/app"," _ version":" 1.1.0"}

我可以使用此条目吗? 如何从iframe src调用它?

非常感谢您提供其他帮助。

南山jay
3楼-- · 2020-08-19 06:10

解决方案是:

this.getOwnerComponent()._ oManifest._oBaseUri._parts.path;

这为您提供了启动板/sap/bc/ui5_ui5/namespace/app/〜EBB10196E937C17BB58FB508D8D9774B〜5中的路径

在webide中,它是未定义的,但是当然也不需要,因此需要if(this.getOwnerComponent()._ oManifest)。

感谢Wouter的想法和提示。

 if(this.getOwnerComponent()._ oManifest){
 var path = this.getOwnerComponent()._ oManifest._oBaseUri._parts.path;
 }其他{
 var path ="/";
 }
 如果(document.getElementById(" pdfViewer")){
 让oVBox = this.getView()。byId(" PDFjsViewer");
 oVBox.destroyItems();
 }
 var oiFrame = new sap.ui.core.HTML({
 内容:"