JS SDK
事件触发器 history.router.emitter
用于页面间派发和接收事件。history.router.emitter 是一个轻量级的 JavaScript 事件触发器,它提供了基本的事件触发、事件监听和取消事件监听功能,详细使用可参考 mitt
使用平台全局触发器,使用前先添加引用
import history from "core/appHistory";
如果想单独使用,不与平台全局事件触发器混合使用,请使用原生插件(原生插件使用请参考插件官网),使用前先添加引用
import mitt from 'mitt';
触发事件
- 方法:history.router.emitter.emit(eventName, params)
- 参数
- eventName:事件名称
- params:事件参数(多个参数请使用 json 对象)
- 说明:如果触发事件存在,则在类型匹配的处理程序之后调用 '*' 处理程序。
- 示例:
history.router.emitter.emit("alertStr",{a:"1",b:"2",c:"3"});
监听事件
- 方法:history.router.emitter.on(eventName, handler)
- 参数
- eventName:事件名称(字符串 | 符号),所有事件使用 '*'
- handler:函数,为响应给定事件而调用的函数
- 示例:
history.router.emitter.on("alertStr",({a,b,c})=>{
alert(`${a}++++++++++++++${b}++++++++++++++${c}`);
})
移除监听
- 方法:history.router.emitter.off(eventName, handler)
- 参数
- eventName:事件名称
- handler:函数。如果省略 handler ,则将删除给定类型的所有处理程序。
- 示例:
const testFn=({a,b,c})=>{
alert(`${a}++++++++++++++${b}++++++++++++++${c}`);
}
history.router.emitter.off("alertStr",testFn);
history.router.emitter.on("alertStr",testFn);
获取所有监听事件
- 属性:history.router.emitter.all
- 示例:
const allEmit=history.router.emitter.all;
console.log(allEmit);//输出json数组对象
设备工具类 detector
用于获取当前设备信息,浏览器信息等,例如查看是移动设备还是 PC 设备,具体介绍参考 detector ,使用前先添加引用
import detector from 'detector';
示例: 获取设备名称:detector.device.name //pc 获取浏览器名称:detector.browser.name //chrome 获取浏览器版本:detector.browser.version //109
更多用法,参考插件官网:https://hotoo.github.io/detector/
UUID 工具类
用于生成一个 UUID,使用前先添加引用
import UUID from "$UI/wxsys/lib/base/uuid";
生成32位 UUID
- createUUID()
- new UUID().toString()
示例:
const uuid1=new UUID().toString();//CADDD21E82B00001D494A2001C329F50
const uuid4=UUID.createUUID();//CADDD21E82C0000138B313229690176D
生成19位 UUID
- createShortUUID()
- new UUID(true).toString()
示例:
const uuid2=new UUID(true).toString();//p085UKE33hPsL7U45kk
const uuid3=UUID.createShortUUID();//p085UKE33CnnhUPE8dq
MD5 工具类
用于对一个字符串进行 md5 加密,使用前先添加引用
import MD5 from "$UI/wxsys/lib/base/md5";
使用加密方法前,需要使用 new MD5(hexcase) 进行构造,其中 hexcase 参数针对“Hex 加密”,设置为 true 返回大写字母,设置为 false 返回小写字母,默认返回小写字母
Hex 加密
- 方法:hex_md5(input)
- 参数
- input:字符串
- 示例
const exampleStr="justep";
const md5Str=new MD5().hex_md5(exampleStr);//d77f63daa21849e228a9e796833b84c3
const md5Str=new MD5(true).hex_md5(exampleStr);//D77F63DAA21849E228A9E796833B84C3
Base64 加密
- 方法:b64_md5(input)
- 参数
- input:字符串
- 示例
const exampleStr="justep";
const b64Str=new MD5().b64_md5(exampleStr);//139j2qIYSeIoqeeWgzuEww
Base64 工具类
用于实现 Base64 编码和解码,使用前先添加引用
import Base64 from "$UI/wxsys/lib/base/base64";
Base64 编码
- 方法:encode(input)
- 参数
- input:编码字符串
- 示例:
const exampleStr="justep";
const base64=Base64.encode(exampleStr);//anVzdGVw
Base64 解码
- 方法:decode(input)
- 参数
- input:解码字符串
- 示例:
const exampleStr="justep";
const base64=Base64.encode(exampleStr);//anVzdGVw
const decodeStr=Base64.decode(base64);//justep
密码加密
在请求中如果要传输密码,应该对密码先进行加密,系统提供前端加密,后端解密的方法,参考《密码工具类 PasswordUtil》。
前端加密先引用 uaa,代码如下
import uaa from "$UI/wxsys/comps/user/js/uaa";
加密方法
- 方法:encodePassword(password)
- 参数:
- password:要加密的密码
- 返回值:加密后的密码
- 示例
uaa.encodePassword("aSDF1@#$")
请求加密工具类 crypto-request
在系统中开启安全插件后,系统自动加密请求中的请求参数,一般情况下,无需手工加密。如遇特殊情况,系统提供加密和解密方法,在使用前添加引用
import CryptoRequest from "core/api/network/crypto-request";
URL 加密
- 方法:encode(url)
- 参数
- url:需要加密的 url
- 示例:
const url3="https://entrylzsdev6-vipabe265ab.trunk.xcaas.net/wftest/main/dbrest/wftest?title=标题名称";
let cryptoHref2 = CryptoRequest.encode(url3);//https://entrylzsdev6-vipabe265ab.trunk.xcaas.net/wftest/main/dbrest/wftest?crypto_query=d0016843a071a657a4296824453d2566683c50b3b2cc7833ed1144b4b7d2c49274a7b8c45aef1b751fb7cdacdc52d81dbb7263b40b1cb0003d0559c6f3bdeeea
URL 解密
- 方法:decode(url)
- 参数
- url:需要解密的 url
- 示例:
const url3="https://entrylzsdev6-vipabe265ab.trunk.xcaas.net/wftest/main/dbrest/wftest?title=标题名称";
let cryptoHref2 = CryptoRequest.encode(url3);//https://entrylzsdev6-vipabe265ab.trunk.xcaas.net/wftest/main/dbrest/wftest?crypto_query=d0016843a071a657a4296824453d2566683c50b3b2cc7833ed1144b4b7d2c49274a7b8c45aef1b751fb7cdacdc52d81dbb7263b40b1cb0003d0559c6f3bdeeea
let cryptoHref3 = CryptoRequest.decode(cryptoHref2);//https://entrylzsdev6-vipabe265ab.trunk.xcaas.net/wftest/main/dbrest/wftest?title=%E6%A0%87%E9%A2%98%E5%90%8D%E7%A7%B0