鸿蒙体系开发【装备安全服务-应用装备状态检测】安全 ...

打印 上一主题 下一主题

主题 777|帖子 777|积分 2331

装备安全服务-应用装备状态检测

先容

本示例向您先容如何在应用中获取DeviceToken用于对应用的装备状态举行检测。
需要使用装备安全服务接口 @kit.DeviceSecurityKit
结果预览


Sample工程的配置与使用

在DevEco中配置Sample工程的步骤如下


  • [创建项目]及[应用]。
  • 打开Sample应用,使用[AppGallery Connect]配置的应用包名替换app.json5文件中的bundleName属性值。
  • 使用[AppGallery Connect]配置的应用Client ID替换module.json5文件中的client_id属性值。
  • 生成SHA256应用署名证书指纹并添加到[AppGallery Connect]对应的应用配置中,证书指纹生成请参考应用开发准备中的[添加公钥指纹]章节。
  • 在开通安全检测服务,具体Device Security Kit开发指南。
Sample工程使用说明


  • 运行该 Sample 应用前,先对装备举行联网。
  • 运行该 Sample 应用,点击"CheckSysIntegrity"按钮获取体系完备性检测结果,点击"CheckUrlThreat"按钮获取URL检测结果,假如获取成功,页面会体现检测结果,假如获取失败,页面会体现相应的错误码。
具体实现

本示例展示体系完备性检测,URL检测的功能在页面中直接调用,使用safetyDetect.checkSysIntegrity()方法获取当前装备的体系完备性检测结果,使用safetyDetect.checkUrlThreat()方法获取URL检测结果。
源码参考SafetyDetectModel.ts

  1. import { hilog } from '@kit.PerformanceAnalysisKit';
  2. import { safetyDetect } from '@kit.DeviceSecurityKit';
  3. import { BusinessError} from '@kit.BasicServicesKit';
  4. const TAG: string = '[SafetyDetectModel]';
  5. function checkSysIntegrityPromise(): Promise<String> {
  6.   return new Promise(async (resolve, reject) => {
  7.     let strLen: number = 16;
  8.     let srcStr: string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhijklmnopqrstuvwxyz0123456789";
  9.     let randomStr: string = "";
  10.     for (let i = 0; i < strLen; i++) {
  11.       randomStr += srcStr.charAt(Math.floor(Math.random() * srcStr.length));
  12.     }
  13.     let sysIntegrityRequest: safetyDetect.SysIntegrityRequest = {
  14.       nonce: randomStr
  15.     }
  16.     try {
  17.       hilog.info(0x0000, TAG, 'CheckSysIntegrity begin.');
  18.       let sysIntegrityResponse: safetyDetect.SysIntegrityResponse =
  19.         await safetyDetect.checkSysIntegrity(sysIntegrityRequest);
  20.       let result: string = sysIntegrityResponse.result;
  21.       resolve(result);
  22.       hilog.info(0x0000, TAG, 'Succeeded in checkSysIntegrity: %{public}s', result);
  23.     }
  24.     catch (err) {
  25.       hilog.error(0x0000, TAG, 'CheckSysIntegrity failed: %{public}d %{public}s', err.code, err.message);
  26.       reject(err);
  27.     }
  28.   });
  29. }
  30. function checkUrlThreatPromise(): Promise<String> {
  31.   return new Promise(async (resolve, reject) => {
  32.     let urlCheckRequest: safetyDetect.UrlCheckRequest = {
  33.       urls: ['https://an.example.test','https://www.huawei.com']
  34.     }
  35.     try {
  36.       hilog.info(0x0000, TAG, 'CheckUrlThreat begin.');
  37.       let urlCheckResponse: safetyDetect.UrlCheckResponse = await safetyDetect.checkUrlThreat(urlCheckRequest);
  38.       let results: safetyDetect.UrlCheckResult[]  = urlCheckResponse.results;
  39.       let resultStr: string = "";
  40.       for (let result of results) {
  41.         let url: string =  result.url;
  42.         let threat: safetyDetect.UrlThreatType =  result.threat;
  43.         resultStr = resultStr + "url: " + url + "      threat: " + threat + "\n";
  44.       }
  45.       resolve(resultStr);
  46.       hilog.info(0x0000, TAG, 'Succeeded in checkUrlThreat: %{public}s', resultStr);
  47.     }
  48.     catch (err) {
  49.       hilog.error(0x0000, TAG, 'CheckUrlThreat failed: %{public}d %{public}s', err.code, err.message);
  50.       reject(err);
  51.     }
  52.   });
  53. }
  54. export class SafetyDetectModel {
  55.   private dispalyText: String = '';
  56.   async checkSysIntegrity(callback: Function) {
  57.     this.dispalyText = '';
  58.     await checkSysIntegrityPromise().then((token) => {
  59.       this.dispalyText = token;
  60.       callback(this.dispalyText);
  61.     }).catch((err: BusinessError) => {
  62.       this.dispalyText = 'check SysIntegrity failed, errCode is ' + err.code;
  63.       callback(this.dispalyText);
  64.     });
  65.   }
  66.   async checkUrlThreat(callback: Function) {
  67.     this.dispalyText = '';
  68.     await checkUrlThreatPromise().then((token) => {
  69.       this.dispalyText = token;
  70.       callback(this.dispalyText);
  71.     }).catch((err: BusinessError) => {
  72.       this.dispalyText = 'check UrlThreat failed, errCode is ' + err.code;
  73.       callback(this.dispalyText);
  74.     });
  75.   }
  76. }
  77. let safetyDetectModel = new SafetyDetectModel();
  78. export default safetyDetectModel as SafetyDetectModel;
复制代码
以上就是本篇文章所带来的鸿蒙开发中一小部门技能讲解;想要学习完备的鸿蒙全栈技能。可以在末端找我可全部拿到!
下面是鸿蒙的完备学习路线,展示如下:

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完备的学习【文档+视频】,内容包含如下
   内容包含了:(ArkTS、ArkUI、Stage模型、多端摆设、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技能、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技能知识点。帮助各人在学习鸿蒙路上快速成长!
  鸿蒙【北向应用开发+南向体系层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经


为了制止各人在学习过程中产生更多的时间本钱,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢各人观看!

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

曹旭辉

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表