iframe开发方式说明
# 开发说明
要使用“跨~界”图形引擎进行二次开发,首先要有“跨~界”的使用权限,您可以通过以下方式获取该权限。
- 本地服务器私有化部署一套跨~界软件,通过iframe标签嵌入本地模型端界面,调用服务接口实现功能,
- iframe直接嵌入跨~界云端模型服务网站来加载模型(需要开通账号),然后调用接口实现功能。
# 模型开发
在您的项目中通过iframe标签嵌入“跨~界”图形引擎服务界面。
<iframe id="iframeId" src="http://localhost:3000/?d:/模型文件夹/test.bim?editable" height="100%" width="100%" ></iframe>说明:http://localhost:3000/?d:/模型文件夹/test.bim?editable 是由模型服务地址和模型文件物理地址和文件是否可编辑通过"?"拼接。文件只查看不修改时建议不传editable,使用只读模式打开文件,可提高加载速度。
调用API接口实现与iframe中的模型场景进行交互实现功能需求。
(1)在入口文件注册全局方法(具体可查看demo项目的入口文件main.js)
import { PostKsjMessageFactory } from './ksjIframe'; // 初始化PostKsjMessageFactory let postKsjMessage = new PostKsjMessageFactory(); postKsjMessage.init('bimIframeId'); // 添加vue全局方法$postKsjMessage Vue.prototype.$postKsjMessage = function (data, callback) { postKsjMessage.postMessage(data, callback); }(2) 例如设置模型透明功能(具体可查看接口文档或者demo项目)
调用iframe接口:
this.$postKsjMessage(
{
commandName: "KSJModelControlApi.setWholeTransparency",
data: { opacity: 0.5 },
},
(params) => {
console.log("callback: ", params);
}
);
说明:postKsjMessage(obj, callback)
参数obj:(接口名称和接口参数查看接口列表说明)
{
commandName:"KSJModelControlApi.setWholeTransparency", // commandName 需要调用的接口名
data: {opacity: 0.5}, // 接口需要的参数
}
参数 callback: 为接口的回调函数,如果接口有返回值或者需要执行后续操作时可传入第二个参数, 接口执行完成会调用callback。