鸿蒙开发进阶(HarmonyOS)原生安全
鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习门路!(从零底子入门到精通)
HarmonyOS NEXT应用开发案例实践总结合(持续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)
弁言
在HarmonyOS的广阔生态中,六大原生特性——原生安全、原生风雅、原生易用、原生智能、原生流通与原生互联,共同构筑了系统独特的魅力。此中“原生安全”特性,它不仅是用户深切关怀的焦点焦点,更是随着移动智能终端及其衍生的丰富业务(涵盖移动付出、云端服务等)广泛应用配景下,用户隐私保护的坚实盾牌。隐私保护不仅是对个人权利的崇高恭敬,也是深化用户信托、守护个人信息安全不可或缺的一环,更是积极相应并逾越法律法规要求的表现,确保每一位用户都能在数字天下中安心畅游。
安全控件
安全控件,作为HarmonyOS系统精心打造的一组ArkUI原生组件,其独特之处在于可以大概无缝集成至应用中,实现用户点击即主动授权的功能,彻底摒弃了繁琐的弹窗授权流程。这些控件巧妙地融入应用界面,以“智能按钮”的形式存在,遵照“一键点击,即刻允许”的计划理念,极大地提升了用户体验的流通度。
相较于传统的动态权限申请模式,安全控件引入了场景化授权的概念,不仅简化了用户的利用步骤,还显着低落了计划与开发过程中的复杂度与本钱,实现了开发者、用户及平台生态的三方共赢局面。
目前,系统已提供三大类别的安全控件,各具特色,以满意不同场景需求:
粘贴控件(PasteButton):专为必要访问剪贴板内容的场景计划,一键点击,轻松读取用户剪贴板信息。
生存控件(SaveButton):实用于任何必要将文件生存到媒体库的应用场景,用户点击即可授权,简化文件生存流程。
位置控件(LocationButton):针对暂时精准定位需求而生,用户通过简单点击,即可暂时获取高精度位置信息,为基于位置的服务(如查找周边POI)提供便捷支持(注:当前体验中定位精度有待提升,我们将持续优化以减小误差)。
在我们的便单应用中,已成功融入位置控件,当用户触发控件时,系统即会获取暂时位置权限,并尝试定位用户以快速检索附近的兴趣点(POI),为用户带来更加智能、高效的利用体验。
https://img-blog.csdnimg.cn/img_convert/37335d396e344a059c60c18289bec506.jpeg
LocationButton({ icon: LocationIconStyle.LINES, buttonType: ButtonType.Circle })
.onClick((event: ClickEvent, result: LocationButtonOnClickResult) => {
if (result == LocationButtonOnClickResult.SUCCESS) {
geoLocationManager.getCurrentLocation({
'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX,
'scenario': geoLocationManager.LocationRequestScenario.UNSET,
'maxAccuracy': 0
}).then((result) => {
this.thisLatitude = result.latitude;
this.thisLongitude = result.longitude;
this.latitude = this.thisLatitude;
this.longitude = this.thisLongitude;
this.searchPositionByPosition(this.latitude, this.longitude)
})
} else {
this.latitude = this.thisLatitude ?? Default_Latitude;
this.longitude = this.thisLongitude ?? Default_Longitude;
this.searchPositionByPosition(this.latitude, this.longitude)
}
})
.width(40)
.height(40)
.backgroundColor(themeColorManager.getThemeColor(this.theme))
.offset({ x: -6, y: -6 }) 选择器
在HarmonyOS NEXT中,保护用户隐私被视为至关紧张的原则,特殊是在处置惩罚文件访问这一敏感领域。系统严格遵照权限最小化原则,确保应用仅获取实现其必要功能所必需的权限,从而有效避免过分索权问题。在文件选择器的具体应用中,这一原则表现为应用仅能访问用户明白通过选择器界面选定并同意分享的文件,严禁无穷制地遍历或访问设备的整个文件系统。
当用户有分享文件、生存图片或视频等需求时,HarmonyOS NEXT提供了系统级的文件选择器(FilePicker)作为解决方案。这一预置工具不仅简化了利用流程,还通过拉起相应应用并引导用户完成直观的界面交互,实现了文件的安全共享与生存。尤为紧张的是,文件选择器接口在执行其任务时,本身无需应用额外申请权限,进一步低落了隐私泄露的风险。
通过文件选择器获取的URI(同一资源标识符)被计划为仅具备暂时访问权限,这意味着应用只能在短时间内利用该URI访问对应的文件。若应用必要获得文件的长期化访问权限,则需通过文件选择器提供的特定设置或流程,明白请求并获得用户的永久授权。
在我们的便单APP中,为了提升用户体验并确保数据安全性,我们接纳了DocumentViewPicker这一专门用于文件类型选择的高级选择器。它不仅可以大概高效地帮助用户备份和读取个人数据,还通过严格遵照HarmonyOS NEXT的权限管理机制,确保每一次文件访问都在用户知情且同意的条件下进行,为用户的数据隐私筑起了一道坚实的防线。
https://img-blog.csdnimg.cn/img_convert/acd42322fab277ace1b249cb32412afd.jpeg
/**
* 选择文件
*/
export async function pickDocument(filePath: string): Promise<string> {
return new Promise((resolve) => {
let DocumentSelectOptions = new picker.DocumentSelectOptions();
DocumentSelectOptions.maxSelectNumber = 1;
DocumentSelectOptions.defaultFilePathUri = filePath;
DocumentSelectOptions.fileSuffixFilters = ['bdbackup'];
let documentPicker = new picker.DocumentViewPicker();
documentPicker.select(DocumentSelectOptions).then((DocumentSelectResult) => {
console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult));
resolve(DocumentSelectResult)
}).catch((err: BusinessError) => {
console.error('DocumentViewPicker.select failed with err: ' + err);
});
})
}
/**
* 保存文件
*/
export async function saveDocument(fileName: string, filePath: string): Promise<string> {
return new Promise((resolve) => {
let DocumentSaveOptions = new picker.DocumentSaveOptions();
DocumentSaveOptions.newFileNames = ;
DocumentSaveOptions.defaultFilePathUri = filePath
DocumentSaveOptions.fileSuffixChoices = ['bdbackup'];
let documentPicker = new picker.DocumentViewPicker();
documentPicker.save(DocumentSaveOptions).then((DocumentSaveResult) => {
console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult));
resolve(DocumentSaveResult)
}).catch((err: BusinessError) => {
console.error('DocumentViewPicker.save failed with err: ' + err);
});
})
} https://i-blog.csdnimg.cn/direct/aecd8e669e8141f7b75be983bfd94925.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]