HarmonyOS:一次开发,多端部署(2)功能级一多开发
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )
➤GitHub地址:https://github.com/strengthen
➤原文地址:https://www.cnblogs.com/strengthen/p/18511636
➤如果链接不是为敢技术的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
一、SysCap机制介绍:HarmonyOS使用SysCap机制(即SystemCapability),可以帮助开发者仅关注设备的系统能力,而不用考虑成百上千种具体的设备类型,降低多设备应用开发难度。在HarmonyOS应用开发时,为开发者提供了一个统一的HarnonyOS SDK,进行多设备的开发。
二、SysCap机制介绍(1):能力集
1、系统能力集:操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。
2、支持能力集:描述当前设备能够支持的哪些功能。
3、要求能力集:描述当前应用,具有哪些能力。
4、根据能力的交集、并集、差集来实现应用的安装和分发,通过设备支持能力集和应用要求能力集,控制多设备应用的分发和安装。如下图:应用B有NFC功能,但在设备A没有NFC功能,则设备A不支持安装和分发应用B。
三、SysCap机制介绍(2):canUse接口。
如果一定要求应用B可以安装到设备A中,可以在编码阶段调用canUse接口。在编码阶段,开发者可以通过canlUse接口,判断目标设备是否支持某系统能力,进而执行不同的业务逻辑。通常当设备不支持某种能力时,运行到这部分代码后,给出友好弹窗,避免应用crash崩溃。
aboutToAppear() {
if(canIUse('SystemCapability.Communication.NFC.Core')) {
controller.on('nfcstateChange',(err, nfcstate))=>{
this.message = 'nfcState: ' + nfcState
})
} else {
this.message = 'This device does not support NFC.'
}
}