文本描述了在一个异构系统中,当需要从苍穹平台后端取数但WebAPI方式较为繁琐时,提出了一种将小量、低安全性要求的数据保存到本地存储LocalStorage中并由异构系统取数的方案。实现该方案需要前端扩展JS以写入LocalStorage,并通过苍穹平台的插件功能发送数据至前端,从而实现数据的本地存储和读取。过程中包括编写JS代码、压缩上传文件、验证加载情况及编写后台逻辑等步骤。
需求背景:
异构系统需要在苍穹平台后端从数据库取数传过去,异构系统目前我们可以通过webAPI的方式来取数传数,但这种比较麻烦。对于一些数据量比较小,安全性要求不高的场景,可以考虑用本地存储的方式将后台数据保存到本地存储LocalStorage中,异构系统再从本地存储中取数,下面实现方案实现的场景是如何把后端数据保存到本地存储LocalStorage中
实现方案:
1、 首先,前端要扩展JS。使用管理员登录苍穹,然后点击 系统管理 -> 登录页配置 -> 高级设置 -> 下载模板,解压后有两个文件 index.js 和 index_m.js。index.js 用于扩展web端的页面;index_m.js 用于扩展移动端页面。下面我们以pc端后端为例讲解。
2、在index.js文件,编写自定义js写本地存储逻辑。
(function () {
alert("扩展js");
/**二开扩展 pc端js
* 注意:扩展的js默认是在平台的js前运行,如需扩展的js在平台的js后运行,需要在写在window.afterLoaded中,如下
* window.afterLoaded = function (){
* // your code
* }
*
*/
window.KDPluginExtend = {
setLocalStorage: function (data = {}, callback) {
var key = data.key;
var value = data.value;
if(typeof value === 'object') {
value = JSON.stringify(value);
}
window.localStorage.setItem(key, value);
/**
* 调用callback,会发送customEvent请求给后台
* 注意callback的参数格式(如下)
* success是固定参数,data的值可以自定义
*/
// callback({
// success: true,
// data: data
// })
}
}
})();
(1)上面index.Js逻辑写完之后,把index.js 和 index_m.js(可以不用写逻辑,直接用上面下载下来的模板)两个文件压缩,压缩包仅支持zip, index.js和index_m.js 两个文件必须包含在压缩包根目录中
(2)在苍穹页面打开的时候,查看js文件是否加载成功,如下,index.js,右键复制链接到浏览器打开,看看打开的是否成功加载了上传的js文件
如果在打开的js文件没有加载上你上传的js文件,请检查系统管理 -> 登录页配置 -> 高级设置页面是否成功保存了你上传的文件,如果确定保存了,但是通过浏览器打开的不是自己的js文件,可以通过手动复制js文件到
“苍穹安装路径\static-file-service\webapp\isv\kded\globalfiles”
2、 上面js文件加载成功之后,在苍穹插件中写后台逻辑,把需要保存到本地存储的数据发送给前端
实现效果:
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *