HarmonyOS开发实战:基础组件使用-API

打印 上一主题 下一主题

主题 1021|帖子 1021|积分 3063

 1.基础类组件

模块介绍IdCardUtil提供对身份证校验系列方法IdUtil提供天生ID的一系列方法ArrayUtil提供对集合的一些常用的方法DateUtil提供对日期的一系列封装ObjectUtil提供对于对象的系列操作方法RandomUtil提供随机数的系列方法RegUtil提供对于常用正则表达式的方法StrUtil提供对于字符串的操作方法PhoneUtil提供常用的手机座机等判断OutDTO提供常用的返回实体对象CharUtil提供常用的字符操作CacheUtil提缓存数据而且提取数据操作Logger提供常用的打印日记的方法RegexConst提供常用的正则表达式常量DateConst提供常用的日期格式化表达式常量AuthUtil提供判断授权拉起授权的系列方法Base64Util提供字符串与Base64转换方法 1.IdCardUtil的方法



  • isValidCard18 严格校验18位身份证号是否正确,校验规则如下
  1. /**
  2.    * 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
  3.    * 顺序码: 表示在同一地址码所标识的区域范围内,对同年、同月、同 日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配 给女性。
  4.    * <li>第1、2位数字表示:所在省份的代码</li>
  5.    * <li>第3、4位数字表示:所在城市的代码</li>
  6.    * <li>第5、6位数字表示:所在区县的代码</li>
  7.    * <li>第7~14位数字表示:出生年、月、日</li>
  8.    * <li>第15、16位数字表示:所在地的派出所的代码</li>
  9.    * <li>第17位数字表示性别:奇数表示男性,偶数表示女性</li>
  10.    * <li>第18位数字是校检码,用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示</li>
  11.    * 第十八位数字(校验码)的计算方法为:
  12.    * <li>将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2</li>
  13.    * <li>将这17位数字和系数相乘的结果相加</li>
  14.    * <li>用加出来和除以11,看余数是多少</li>
  15.    * <li>余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2</li>
  16.    * <li>通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2</li>
  17.    * @param idcard 待验证的身份证
  18.    * @return 是否有效的18位身份证,忽略x的大小写
  19.    */
  20.     console.error(IdCardUtil.isValidCard18("781111199407190143").getMsg())
  21.     //输出  省份代码不正确:78
复制代码


  • convert15To18 将15位身份证号码转换成18位
  1.     console.error(IdCardUtil.convert15To18("420106640901234").getDataRow());
  2.     //输出 420106194201062348
复制代码


  • isValidCard15 校验15位身份证号码是否正确
  1. console.error(IdCardUtil.isValidCard15("420106640901234").getMsg());
  2.     //输出 身份证格式正确
复制代码


  • getProvinceCodeByIdCard 根据身份编号获取户籍省份编码,只支持15或18位身份证号码
  1.     let province = IdCardUtil.getProvinceCodeByIdCard("142303111111111111");
  2.     console.info(province.getSuccess() + "--" + province.getDataRow() + "--" + province.getMsg())
  3.     //输出 true--140000--山西省
复制代码


  • getCityCodeByIdCard 根据身份编号获取地市级编码,只支持15或18位身份证号码
  1.     let city = IdCardUtil.getCityCodeByIdCard("142303111111111111");
  2.     console.info(city.getSuccess() + "--" + city.getDataRow() + "--" + city.getMsg())
  3.     //输出 true--142300--吕梁地区
复制代码


  • getDistrictCodeByIdCard 根据身份编号获取区县级编码,只支持15或18位身份证号码
  1.     let district = IdCardUtil.getDistrictCodeByIdCard("142303111111111111");
  2.     console.info(district.getSuccess() + "--" + district.getDataRow() + "--" + district.getMsg())
  3.     //输出 true--142303--汾阳市
复制代码
点击领取→【纯血版鸿蒙全套最新学习资料】(安全链接,放心点击渴望这一份鸿蒙学习资料可以或许给各人带来资助,有必要的小伙伴自行领取~~
2.DateUtil的方法



  • parse 将输入的日期字符串转换为Date日期范例
  1. console.error(DateUtil.parse("2023-01-01"))
  2.     //输出  Sun Jan 01 2023 08:00:00 GMT+0800
复制代码


  • formatDate 将传入的日期字符串按照传入的format举行格式化输出,不传默以为yyyy-MM-dd,日期格式化年代日时分秒为y-M-d HMs
  1.    console.error(DateUtil.formatDate("2023/1/1"))
  2.     //输出  2023-01-01
  3.     console.error(DateUtil.formatDate("2023/1/1",'yyyy-MM-dd HH:mm:ss'))
  4.     //输出  2023-01-01 00:00:00
复制代码


  • format 将日期范例的Date根据传入的format格式化成日期字符串(format必传)
  1.     console.error(DateUtil.format(new Date,'yyyy-MM-dd HH:mm:ss'))
  2.     // 输出 2024-01-03 20:25:58
  3.     console.error(DateUtil.format(new Date,'HH:mm:ss'))
  4.     // 输出 20:27:06
复制代码


  • dateDiff 盘算两个Date的日期差单位为天
  1.     const difference = DateUtil.dateDiff(new Date('2023-01-01'), new Date('2023-01-10'));
  2.     console.log(difference + ""); //输出 9
复制代码


  • strDateDiff 盘算两个字符串日期的差单位为天
  1.     const diff = DateUtil.strDateDiff('2023-11-01 12:12:12', '2024-01-10 12:12:12');
  2.     console.log(diff + ""); //输出 70
复制代码
3.RegUtil的方法



  • isMatch 给定内容是否匹配正则
  1.     let res: OutDTO = RegUtil.isMatch(RegexConst.EMAIL, '111111');
  2.     console.error(res.getSuccess() + "---" + res.getMsg());
  3.     //输出 false---验证字符串格式不正确,请检查
复制代码


  • isEmailMatch 给定邮箱是否匹配正则
  1.     let res: OutDTO = RegUtil.isEmailMatch('13191191111@163.com');
  2.     console.error(res.getSuccess() + "---" + res.getMsg());
  3.     //输出  true---邮箱格式正确
复制代码


  • isMobileMatch 给定手机号是否匹配正则
  1.    let res: OutDTO = RegUtil.isMobileMatch('21212');
  2.     console.error(res.getSuccess() + "---" + res.getMsg());
  3.     //输出  false---手机号码格式不正确,请检查
复制代码


  • isIdCardMatch 给定身份证号是否匹配正则
  1.     let res: OutDTO = RegUtil.isIdCardMatch('21212');
  2.     console.error(res.getSuccess() + "---" + res.getMsg());
  3.     //输出  false---身份证号格式不正确,请检查
复制代码
4.Logger的方法



  • init 初始化第一个入参为应用名,第二个为域可不填
  1.     Logger.init('测试应用')   建议将该初始化方式写在EntryAbility.ets的onWindowStageCreate方法中
复制代码


  • debug debug级别日记【入参为两个字符串,第一个为提示消息,第二个为错误缘故原由】绿色
  1.     Logger.debug("debug错误原因为:", 'xxxxxxxxxxxx')
复制代码


  • info info级别日记【入参为两个字符串,第一个为提示消息,第二个为错误缘故原由】黄色
  1. Logger.info("info错误原因为:", 'xxxxxxxxxxxx')
复制代码


  • warn warn级别日记【入参为两个字符串,第一个为提示消息,第二个为错误缘故原由】 白色
  1.     Logger.warn("warn错误原因为:", 'xxxxxxxxxxxx')
复制代码


  • error error级别日记【入参为两个字符串,第一个为提示消息,第二个为错误缘故原由】 红色
  1. Logger.error("error错误原因为:", 'xxxxxxxxxxxx')
复制代码
5.ObjectUtil的方法



  • equal 判断两个传入的数值大概是字符串是否相等
  1.     console.error(ObjectUtil.equal("1", "1") + "")
  2.     //输出 true
复制代码


  • notEqual 判断两个传入的数值大概是字符串是否不相等
  1.     console.error(ObjectUtil.notEqual("1", "1") + "")
  2.     //输出 false
复制代码
6.AuthUtil的方法



  • checkPermissions 校验是否已授权 【异步方法】
  1.     //单次校验一个权限,入参为需要校验的权限
  2.     let result = await AuthUtil.checkPermissions('ohos.permission.APPROXIMATELY_LOCATION');
  3.     if (!result) {
  4.      //此处可调用拉起授权方法
  5.      ToastUtil.showToast('用户未授权~');
  6.     } else {
  7.       ToastUtil.showToast('用户已授权~');
  8.     }
复制代码


  • reqPermissionsFromUser 拉起单个用户授权 【异步方法】 有callBack
  1.      //拉起用户单个权限授权操作,第一个参数为需要授予的权限,第二个参数为用户授权回调
  2.      AuthUtil.reqPermissionsFromUser('ohos.permission.APPROXIMATELY_LOCATION', (index: number) => {
  3.         //用户同意授权index为1,用户拒绝授权index为-1,根据结果进行业务操作
  4.         ToastUtil.showToast(index == 1 ? '授权成功' : '用户取消授权~');
  5.      })
复制代码


  • reqPermissions 拉起单个用户授权 【异步方法】 无callBack
  1.      //拉起用户单个权限授权操作,用户同意授权code为1,用户拒绝授权code为-1,根据结果进行业务操作
  2.      let code = await AuthUtil.reqPermissions('ohos.permission.APPROXIMATELY_LOCATION');
  3.      if (code<0) {
  4.        //授权失败
  5.        return OutDTO.ErrorByDataRow<string>('获取当前位置失败~', '用户拒绝授权精准定位,获取定位失败~');
  6.      }
复制代码


  • reqPermissionsList 拉起组实用户授权 【异步方法】 无callBack
  1.      //拉起组合用户授权操作,入参为需要授权的权限集合
  2.      let code = await AuthUtil.reqPermissionsList(['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION']);
  3.      //code为true表示权限集合均被授权,为false表示有权限未被授权
  4.      if (!code) {
  5.        //授权失败
  6.        return OutDTO.ErrorByDataRow<string>('获取当前位置失败~', '用户拒绝授权精准定位,获取定位失败~');
  7.      }
复制代码
7.PhoneUtil的方法



  • isMobile 验证是否为手机号码(中国)
  1.    console.error(PhoneUtil.isMobile("17111114114").getMsg())
  2.     // 输出 手机号为中国号码
复制代码


  • isMobileHk 验证是否为手机号码(香港)
  1.     console.error(PhoneUtil.isMobileHk("111111").getMsg())
  2.     // 输出 手机号非中国香港号码,请检查
复制代码


  • isMobileTw 验证是否为手机号码(台湾)
  1.     console.error(PhoneUtil.isMobileTw("17111114114").getMsg())
  2.     // 输出 手机号非中国台湾号码,请检查
复制代码


  • isMobileMo 验证是否为手机号码(澳门)
  1.     console.error(PhoneUtil.isMobileMo("17111114114").getMsg())
  2.     // 输出 手机号非中国澳门号码,请检查
复制代码


  • isTel 验证是否为座机号码(中国)
  1.     console.error(PhoneUtil.isTel("17111114114").getMsg())
  2.     // 输出 号码非中国座机,请检查
复制代码


  • isTel400800 验证是否为座机号码(中国)+ 400 + 800
  1.     console.error(PhoneUtil.isTel400800("17111114114").getMsg())
  2.     // 输出 号码非400800格式的座机,请检查
复制代码


  • isPhone 验证是否为座机号码+手机号码+ 400 + 800电话 + 手机号号码(香港)
  1.     console.error(PhoneUtil.isPhone("17111114114").getMsg())
  2.     // 输出 手机号为中国号码
复制代码
8.CharUtil的方法



  • isEmoji 判断是否为emoji心情符
  1.     console.error(CharUtil.isEmoji(38)+"")
  2.     // 输出 true
复制代码


  • isAscii 判断字符是否为ascii码
  1.     console.error(CharUtil.isAscii("你")+"")
  2.     // 输出 false
复制代码
9.StrUtil的方法



  • isBlank 判断字符串是否为空缺符(空缺符包括空格、制表符、全角空格和不停止空格)true为空,否则false
  1.     console.error(StrUtil.isBlank(' ')+"")
  2.     //输出  true
复制代码


  • asString 将传入的值转换为字符串范例
  1.     const obj:Record<string,string> = {'key': 'this is value'} // key的值类型为 string | undefined
  2.     const test = StrUtil.asString(obj)
复制代码


  • isBlankIfStr 判断传入的对象是否是空格
  1.     const a = StrUtil.isBlankIfStr(obj);
复制代码


  • isEmptyIfStr 判断传入的对象是否是空
  1.     const a = StrUtil.isEmptyIfStr(obj);
复制代码


  • isNotBlank 判断字符串是否为非空缺符(空缺符包括空格、制表符、全角空格和不停止空格)true为非空,否则false
  1.     console.error(StrUtil.isNotBlank('222')+"")
  2.     //输出  true
复制代码


  • trim 去除传入集合的每个值的前后空格
  1.     console.error(StrUtil.trim([" 你好 "," hi","hello "]).join("----"))
  2.     //输出 你好----hi----hello
复制代码


  • hasBlank 判断传入的字符串中是否包含有空值,只要有一个则返回true,否则false
  1.     console.error(StrUtil.hasBlank("","232323")+"")
  2.     //输出  true
复制代码


  • isEmpty 判断传入的字符串是否为空,空缺符判断为非空
  1.     console.error(StrUtil.isEmpty(' ')+"")
  2.     //输出  false
复制代码


  • camelCase 将字符串转换为驼峰
  1.     console.error(StrUtil.camelCase("Foo Bar"))  //输出 fooBar
  2.     console.error(StrUtil.camelCase("--foo-bar--"))  //输出 fooBar
  3.     console.error(StrUtil.camelCase("__FOO_BAR__"))  //输出 fooBar
复制代码


  • capitalize 转换字符串首字母为大写,剩下为小写
  1.      console.error(StrUtil.capitalize("FooBar"))  //输出  Foobar
复制代码


  • endsWith 检查字符串是否以给定的字符串结尾
  1.     console.error(StrUtil.endsWith('abc', 'b', 2) + "")  //输出  true
复制代码


  • repeat 重复 N 次给定字符串
  1.     console.error(StrUtil.repeat("*", 5))  //输出  *****
复制代码


  • replace 更换字符串中匹配的正则为给定的字符串
  1.     const str = 'Hello, World';
  2.     console.log(StrUtil.replace(str, 'Hello', 'Hi')); // 输出:'Hi, World'
  3.     console.log(StrUtil.replace(str, /world/i, 'Universe')); // 输出:'Hello, Universe'
  4.     console.log(StrUtil.replace(str, /[aeiou]/ig, 'X')); // 输出:'HXllX, WXXld'
复制代码


  • startsWith 检查字符串是否以给定的字符串卡头
  1.     const str = 'Hello, World';
  2.     console.log(StrUtil.startsWith(str, 'Hello') + ""); // 输出:true
  3.     console.log(StrUtil.startsWith(str, 'World') + ""); // 输出:false
  4.     console.log(StrUtil.startsWith(str, 'Hello', 7) + ""); // 输出:false
  5.     console.log(StrUtil.startsWith(str, 'World', 7) + ""); // 输出:true
复制代码


  • toLower 转换整个字符串的字符为小写
  1.     console.error(StrUtil.toLower('--Foo-Bar--')); //--foo-bar--
复制代码


  • toUpper 转换整个字符串的字符为大写
  1.     console.error(StrUtil.toUpper('--Foo-Bar--')); //--FOO-BAR--
复制代码


  • truncate 截断字符串,如果字符串超出了限定的最大值。 被截断的字符串反面会以 omission 代替,omission 默认是 "..."
  1.     const str = 'Hello, World';
  2.     console.log(StrUtil.truncate(str)); // 输出:'Hello, World'
  3.     console.log(StrUtil.truncate(str, { length: 5 })); // 输出:'Hello...'
  4.     console.log(StrUtil.truncate(str, { length: 10, omission: '***' })); // 输出:'Hello, Wo***'
  5.     console.log(StrUtil.truncate(str, { separator: ',' })); // 输出:'Hello, World'
  6.     const longStr = 'This is a very long string that needs to be truncated';
  7.     console.log(StrUtil.truncate(longStr, { length: 10 })); // 输出:'This is a ....'
  8.     console.log(StrUtil.truncate(longStr, { length: 10, separator: ' ' })); // 输出:'This is a very...'
复制代码
10.RandomUtil的方法



  • randomStrBySize 根据传入的大小天生随机字符串
  1.     RandomUtil.randomStrBySize(16);
复制代码


  • randomUnitBySize 根据传入的大小天生随机Uint8Array字节流
  1.     RandomUtil.randomUnitBySize(16);
复制代码


  • generateIV 天生CBC模式的iv
  1.    let iv = await RandomUtil.generateIV();
复制代码


  • randomBoolean 随机天生一个布尔值
  1.     console.error(RandomUtil.randomBoolean()+"")
  2.     //输出  true/false
复制代码


  • randomChinese 随机天生一个汉字
  1.     console.error(RandomUtil.randomChinese())
  2.     //输出  趐
复制代码


  • randomNumber 获得指定范围内的随机数,包含最小值,不包含最大值
  1.     console.error(RandomUtil.randomNumber(1000,10000)+"")
  2.     //输出  3184
复制代码


  • randomInt 获得随机数number值
  1.     console.error(RandomUtil.randomInt()+"")
  2.     //输出  842905298955385
复制代码


  • randomLimit 获得指定范围内的随机数 [0,limit) 不包括limit
  1.     console.error(RandomUtil.randomLimit(100)+"")
  2.     //输出  54
复制代码
11.ArrayUtil的方法



  • append 将新元素添加到已有数组中 添加新元素会天生一个新的数组,不影响原数组
  1.     let n = ArrayUtil.append(["1", "2", "3"], ["4"]);
  2.     n.forEach(item => {
  3.       console.error(item);
  4.     })
  5.     //输出  1 2 3 4
复制代码


  • setOrAppend 将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加
  1.     let arr = ArrayUtil.setOrAppend<string>(["1212", "3232", "5345", "645654", "64564564x"], 2, "你好");
  2.     console.error(JSON.stringify(arr))
  3.     //输出  ["1212","3232","你好","645654","64564564x"]
复制代码


  • replace 将新元素插入到到已有数组中的某个位置
  1.     let arr2 = ArrayUtil.replace<string>(["1212", "3232", "5345", "645654", "64564564x"], 1, "halo");
  2.     console.error(JSON.stringify(arr2))
  3.     //输出  ["1212","halo","5345","645654","64564564x"]
复制代码


  • filter 通过传入的filter实现来过滤返回必要的元素内容
  1.     let pArr: Array<Person> = JSONUtil.parseArray('[{"name":"测试名称1","age":18,"birth":"2023-01-01"},{"name":"测试名称3","age":3,"birth":"2021-11-01 12:12:12" },{"name":"测试名称4","age":34,"birth":"2023-01-01 12:12:12" },{"name":"测试名称2","age":23,"birth":"2021-01-01 12:12:12" }]', DateConst.YMD_HLINE_HMS);
  2.     let flter = ArrayUtil.filter<Person>(pArr, (item: Person) => item.name.includes("4"));
  3.     console.error(JSON.stringify(flter))
  4.     //输出  [{"name":"测试名称4","age":34,"birth":"2023-01-01 12:12:12"}]
复制代码


  • reverse 反转数组,会变更原数组
  1.     ArrayUtil.reverse<Person>(pArr);
  2.     console.log(JSONUtil.toJSONString(pArr));
  3.     //输出  [{"name":"测试名称4","age":23,"birth":"2021-01-01 12:12:12"},{"name":"测试名称3","age":34,"birth":"2023-01-01 12:12:12"},{"name":"测试名称2","age":3,"birth":"2021-11-01 12:12:12"},{"name":"测试名称1","age":18,"birth":"2023-01-01 00:00:00"}]
复制代码


  • min 根据传入的数值字符串日期数组取最小值
  1.     console.error(ArrayUtil.min<number>([345, 5, 67, 899076, 3, 2, 143, 17, 65]) + "")
  2.     //输出  2
复制代码


  • max 根据传入的数值字符串日期数组取最大值
  1.     console.error(ArrayUtil.max<number>([345, 5, 67, 899076, 3, 2, 143, 17, 65]) + "")
  2.     //输出  899076
复制代码


  • distinct 去重数组中的元素,去重后天生新的数组,原数组不变
  1.     let nArr = ArrayUtil.distinct<string, string>(["你", "helo", "哇哈哈哈", "212121", "2222", "哇哈哈哈", "你"], item => item);
  2.     console.error(JSONUtil.toJSONString(nArr));
  3.     //输出  ["你","helo","哇哈哈哈","212121","2222"]
复制代码


  • remove 移除数组中predicate返回为真值的全部元素,并返回移除元素组成的数组
  1.     const array = [1, 2, 3, 4, 5];
  2.     const removed = ArrayUtil.remove(array, (value: number) => value % 2 === 0);
  3.     console.log(JSONUtil.toJSONString(removed)); // [4,2]
  4.     console.log(JSONUtil.toJSONString(array)); // [1, 3, 5]
复制代码


  • removeEmptyValues 去除集合中的空值
  1.     console.error(JSONUtil.toJSONString(ArrayUtil.removeEmptyValues([1, "", "ssss", "", true])))  
  2.     //输出  [1,"ssss",true]
复制代码


  • union 创建一个按次序排列的唯一值的数组(注:arrays(数组)的并集,按次序返回,返回数组的元素是唯一的)
  1.     const arr1 = [1, 2, 3];
  2.     const arr2 = [2, 3, 4];
  3.     const arr3 = [3, 4, 5];
  4.     const result = ArrayUtil.union(arr1, arr2, arr3);
  5.     console.log(JSONUtil.toJSONString(result)); // 输出:[1, 2, 3, 4, 5]
复制代码


  • defaultIfEmpty 集合为空时传入默认集合
  1. let str: string[] = [];
  2.     ArrayUtil.defaultIfEmpty(str, ["1", "32"]).forEach(item => {
  3.       this.message += item + "、";
  4.     })
  5.     //输出 1、32
复制代码


  • isNotEmpty 集合是否为空集合,不空为true否则false
  1.     let str: string[] = [];
  2.     if (ArrayUtil.isNotEmpty(str)) {
  3.       this.message = "不是空的";
  4.     } else {
  5.       this.message = "是空的"
  6.     }
  7.     //输出 是空的
复制代码


  • isEmpty 集合是否为空集合,空为true否则false
  1.     let str: string[] = [];
  2.     if (ArrayUtil.isEmpty(str)) {
  3.       this.message = "是空的";
  4.     } else {
  5.       this.message = "不是空的"
  6.     }
  7.     //输出 是空的
复制代码


  • strValIsEmpty 集合中每个值都为空则返回true,否则返回false
  1.     let str: string[] = ["", ""];
  2.     if (ArrayUtil.strValIsEmpty(str)) {
  3.       this.message = "是空的";
  4.     } else {
  5.       this.message = "不是空的"
  6.     }
复制代码


  • strValIsNotEmpty 集合中只要有一个值不为空则返回true,否则返回false
  1.     let str: string[] = ["1",""];
  2.     if (ArrayUtil.strValIsNotEmpty(str)) {
  3.       this.message = "不是空的";
  4.     } else {
  5.       this.message = "是空的"
  6.     }
  7.     //输出  不是空的
复制代码
12.CacheUtil的方法



  • save 存储指定范例的数据(必须指定范例T) 第一个入参为key,第二个入参为待存入数据
  1. //存入字符串<>中数据类型为必填
  2.     CacheUtil.save<string>("str", "测试存入字符串");
  3.     //存入对象T<>中数据类型为必填
  4.     let person = new Person('测试', 12, new Date(), new User("uuid", "打撒吃的是草动次打次"));
  5.     CacheUtil.save<Person>("tetObj", person);
  6.     //存入对象集合<>中数据类型为必填
  7.     let arrP = Array<Person>();
  8.     arrP[0] = new Person('test1', 1, new Date(), new User("uuid1", "user测试内容1"));
  9.     arrP[1] = new Person('test2', 2, new Date(), new User("uuid2", "user测试内容2"));
  10.     arrP[2] = new Person('test3', 3, new Date(), new User("uuid3", "user测试内容3"));
  11.     CacheUtil.save<Array<Person>>("arrPerson", arrP);
复制代码


  • get 根据key获取指定范例的数据(必须指定范例T),入参为存入时的key
  1. //获取字符串<>中数据类型为必填
  2.     this.message = CacheUtil.get<string>("str");
  3.     //获取对象T<>中数据类型为必填
  4.     let p = CacheUtil.get<Person>("tetObj");
  5.     this.message = p.name + p.age + p.user.id;
  6.     //获取对象集合<>中数据类型为必填
  7.     let newStr: string = '';
  8.     let res = CacheUtil.get<Array<Person>>("arrPerson");
  9.     res.forEach(item => {
  10.       newStr += item.age + item.name + item.user.id + item.user.name;
  11.     })
  12.     this.message = newStr;
复制代码
13.IdUtil的方法



  • simpleUUID 天生32为UUID不带-
  1. console.error(IdUtil.simpleUUID())
  2.     //输出   076bb3b9db6f4ecb885dbdbdd2c29080
复制代码


  • fastUUID 天生36为UUID带-
  1.     console.error(IdUtil.fastUUID())
  2.     //输出  628128FC-55CA-48B7-8EA0-5162848FDCEF
复制代码


  • fastSimpleUUID 天生32为UUID带-
  1.     console.error(IdUtil.fastSimpleUUID())
  2.     //输出  56703FA1-0BB-503-D93-00E94A28422
复制代码


  • randomUUID 天生36为UUID带-,小写
  1.     console.error(IdUtil.randomUUID())
  2.     //输出  600cddfb-1e88-4798-8987-bfb703be76ff
复制代码
14.OutDTO的方法



  • 该对象有四个私有成员变量
  1.   //成功失败标识
  2.   private success: boolean;
  3.   //返回提示信息
  4.   private msg: string;
  5.   //返回单行数据
  6.   private dataRow?: T;
  7.   //返回数据集合
  8.   private dataTable?: Array<T>;
复制代码


  • OK 只必要返回成功提示消息时使用
  1.     let res:OutDTO = OutDTO.OK("只返回提示消息~");
  2.     console.error(res.getMsg()+"------"+res.getSuccess())
  3.     //输出只返回提示消息~------true  
复制代码


  • OKByDataRow 必要返回成功提示消息而且附带单行数据时使用
  1.     let p: Person = JSONUtil.parseObject<Person>('{"name":"测试名称","age":18,"birth":"2024-01-03" }', 'yyyy/MM/dd HH:mm:ss')
  2.     let res: OutDTO<Person> = OutDTO.OKByDataRow<Person>('成功过了~', p);
  3.     console.error(res.getMsg() + "------" + res.getSuccess()+"-----"+res.getDataRow())
  4.     //输出   成功过了~------true-----[object Object]
复制代码


  • OKByDataTable 必要返回成功提示消息而且附带多行数据时使用
  1. let pArr: Array<Person> = JSONUtil.parseArray('[{"name":"测试名称1","age":18,"birth":"2023-01-01"},{"name":"测试名称2","age":23,"birth":"2021-01-01 12:12:12" }]', DateConst.YMD_HLINE_HMS);
  2.     let res = OutDTO.OKByDataTable<Person>('成功过了11111~', pArr);
  3.     console.error(res.getMsg() + "------" + res.getSuccess()+"-----"+res.getDataTable().length)
  4.     //输出  成功过了11111~------true-----2
复制代码


  • Error 只必要返回失败提示消息时使用
  1. let res:OutDTO = OutDTO.Error("只返回失败提示消息~");
  2.     console.error(res.getMsg()+"------"+res.getSuccess())
  3.     //输出 只返回失败提示消息~------false
复制代码


  • ErrorByDataRow 必要返回失败提示消息而且附带单行数据时使用
  1.   let p: Person = JSONUtil.parseObject<Person>('{"name":"测试名称","age":18,"birth":"2024-01-03" }', 'yyyy/MM/dd HH:mm:ss')
  2.     let res: OutDTO = OutDTO.ErrorByDataRow<Person>("只返回失败提示消息~", p);
  3.     console.error(res.getMsg() + "------" + res.getSuccess()+res.getDataRow())
  4.     //输出  只返回失败提示消息~------false[object Object]
复制代码


  • getSuccess 获取成功失败标识
  • setSuccess 设置成功失败标识
  • getMsg 获取提示消息
  • setMsg 设置提示消息
  • getDataRow 获取单行数据
  • setDataRow 设置单行数据
  • getDataTable 获取多行数据
  • setDataTable 设置多行数据
15.Base64Util的方法(1.1.13-rc.0+)



  • encodeToStr 将Uint8Array转化为字符串-异步
  1. let a = await Base64Util.encodeToStr(new Uint8Array(buffer.from([12, 32, 54, 65, 74]).buffer));
复制代码


  • decode 将字符串转换为Uint8Array数组-异步
  1. let c = await Base64Util.decode(a);
复制代码


  • encodeToStrSync 将Uint8Array转化为字符串-同步
  1. let b = Base64Util.encodeToStrSync(new Uint8Array(buffer.from([12, 32, 54, 65, 74]).buffer));
复制代码


  • decodeSync 将字符串转换为Uint8Array数组-同步
  1. let d = Base64Util.decodeSync(b);
复制代码

最后

有很多小伙伴不知道学习哪些鸿蒙开发技能?不知道必要重点把握哪些鸿蒙应用开发知识点?而且学习时频仍踩坑,终极浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 
点击领取→【纯血版鸿蒙全套最新学习资料】(安全链接,放心点击渴望这一份鸿蒙学习资料可以或许给各人带来资助,有必要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必把握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模子、多端摆设、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技能、Napi组件、OpenHarmony内核、(南向驱动、嵌入式等)鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技能知识点。




 鸿蒙(HarmonyOS NEXT)最新学习门路

有了门路图,怎么能没有学习资料呢,小编也预备了一份连合鸿蒙官方发布条记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模子、资源分类…等知识点。
获取以上完整版高清学习门路,请点击→纯血版全套鸿蒙HarmonyOS学习资料
HarmonyOS Next 最新全套视频教程

 《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建

《鸿蒙开发基础》


  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

《鸿蒙开发进阶》


  • Stage模子入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 关照与窗口管理
  • 多媒体技能
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来计划
  • 鸿蒙系统移植和裁剪定制
  • ……

《鸿蒙进阶实战》


  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

大厂面试必问面试题

鸿蒙南向开发技能

鸿蒙APP开发必备

鸿蒙生态应用开发白皮书V2.0PDF


请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年步伐员来说是一个挑衅,也是一个机会。只有积极应对变化,不停学习和提升本身,他们才气在这个厘革的时代中立于不败之地。 

                   





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表