ToB企服应用市场:ToB评测及商务社交产业平台
标题:
鸿蒙体系开发【装备安全服务-应用装备状态检测】安全
[打印本页]
作者:
曹旭辉
时间:
2024-8-2 04:31
标题:
鸿蒙体系开发【装备安全服务-应用装备状态检测】安全
装备安全服务-应用装备状态检测
先容
本示例向您先容如何在应用中获取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
import { hilog } from '@kit.PerformanceAnalysisKit';
import { safetyDetect } from '@kit.DeviceSecurityKit';
import { BusinessError} from '@kit.BasicServicesKit';
const TAG: string = '[SafetyDetectModel]';
function checkSysIntegrityPromise(): Promise<String> {
return new Promise(async (resolve, reject) => {
let strLen: number = 16;
let srcStr: string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhijklmnopqrstuvwxyz0123456789";
let randomStr: string = "";
for (let i = 0; i < strLen; i++) {
randomStr += srcStr.charAt(Math.floor(Math.random() * srcStr.length));
}
let sysIntegrityRequest: safetyDetect.SysIntegrityRequest = {
nonce: randomStr
}
try {
hilog.info(0x0000, TAG, 'CheckSysIntegrity begin.');
let sysIntegrityResponse: safetyDetect.SysIntegrityResponse =
await safetyDetect.checkSysIntegrity(sysIntegrityRequest);
let result: string = sysIntegrityResponse.result;
resolve(result);
hilog.info(0x0000, TAG, 'Succeeded in checkSysIntegrity: %{public}s', result);
}
catch (err) {
hilog.error(0x0000, TAG, 'CheckSysIntegrity failed: %{public}d %{public}s', err.code, err.message);
reject(err);
}
});
}
function checkUrlThreatPromise(): Promise<String> {
return new Promise(async (resolve, reject) => {
let urlCheckRequest: safetyDetect.UrlCheckRequest = {
urls: ['https://an.example.test','https://www.huawei.com']
}
try {
hilog.info(0x0000, TAG, 'CheckUrlThreat begin.');
let urlCheckResponse: safetyDetect.UrlCheckResponse = await safetyDetect.checkUrlThreat(urlCheckRequest);
let results: safetyDetect.UrlCheckResult[] = urlCheckResponse.results;
let resultStr: string = "";
for (let result of results) {
let url: string = result.url;
let threat: safetyDetect.UrlThreatType = result.threat;
resultStr = resultStr + "url: " + url + " threat: " + threat + "\n";
}
resolve(resultStr);
hilog.info(0x0000, TAG, 'Succeeded in checkUrlThreat: %{public}s', resultStr);
}
catch (err) {
hilog.error(0x0000, TAG, 'CheckUrlThreat failed: %{public}d %{public}s', err.code, err.message);
reject(err);
}
});
}
export class SafetyDetectModel {
private dispalyText: String = '';
async checkSysIntegrity(callback: Function) {
this.dispalyText = '';
await checkSysIntegrityPromise().then((token) => {
this.dispalyText = token;
callback(this.dispalyText);
}).catch((err: BusinessError) => {
this.dispalyText = 'check SysIntegrity failed, errCode is ' + err.code;
callback(this.dispalyText);
});
}
async checkUrlThreat(callback: Function) {
this.dispalyText = '';
await checkUrlThreatPromise().then((token) => {
this.dispalyText = token;
callback(this.dispalyText);
}).catch((err: BusinessError) => {
this.dispalyText = 'check UrlThreat failed, errCode is ' + err.code;
callback(this.dispalyText);
});
}
}
let safetyDetectModel = new SafetyDetectModel();
export default safetyDetectModel as SafetyDetectModel;
复制代码
以上就是本篇文章所带来的鸿蒙开发中一小部门技能讲解;想要学习完备的鸿蒙全栈技能。可以在末端找我可全部拿到!
下面是
鸿蒙的完备学习路线
,展示如下:
除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完备的学习【文档+视频】,内容包含如下
:
内容包含了:(
ArkTS、ArkUI、Stage模型、多端摆设、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技能、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战
)等技能知识点。帮助各人在学习鸿蒙路上快速成长!
鸿蒙【北向应用开发+南向体系层开发】文档
鸿蒙【基础+实战项目】视频
鸿蒙面经
为了制止各人在学习过程中产生更多的时间本钱,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢各人观看!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4