diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md old mode 100755 new mode 100644 index 0fd68ae5cf661005dceeda16ec43822aca63b0ba..9a8202b17f11b8c54783b816fbcc68b085380634 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -336,6 +336,7 @@ - [@ohos.web.webview (Webview)](js-apis-webview.md) - [console (控制台)](js-apis-logs.md) - [Timer (定时器)](js-apis-timer.md) + - [syscap (系统能力)](js-apis-syscap.md) - application - [AccessibilityExtensionContext (辅助功能扩展上下文)](js-apis-inner-application-accessibilityExtensionContext.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-syscap.md b/zh-cn/application-dev/reference/apis/js-apis-syscap.md new file mode 100644 index 0000000000000000000000000000000000000000..54d1047262fe0698e5316419cb1ca740be14deeb --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-syscap.md @@ -0,0 +1,42 @@ +# SysCap (系统能力) + +系统能力(SystemCapability,简称SysCap),指操作系统中每一个相对独立的特性。不同的设备对应不同的系统能力集,每个系统能力对应一个或多个API。开发者可根据系统能力来判断是否可以使用某接口。 + +> **说明:** +> +> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + +## canIUse + +canIUse(syscap: string): boolean + +查询系统是否具备某个系统能力。 + +**系统能力:** SystemCapability.ArkUI.ArkUI.Full + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| syscap | string | 是 | 待查询的系统能力名称。 | + +**返回值:** + +| 类型 | 说明 | +| -------- | -------- | +| boolean | 系统能力查询结果,true表示系统具备该能力,false表示系统不具备。 | + +**示例:** + + ```js +import geolocation from '@ohos.geolocation' + +const isLocationAvailable = canIUse('SystemCapability.Location.Location'); +if (isLocationAvailable) { + geolocation.getCurrentLocation((location) => { + console.log(location.latitude, location.longitue); + }); +} else { + console.log('Location not by this device.') +} + ``` \ No newline at end of file diff --git a/zh-cn/application-dev/reference/syscap.md b/zh-cn/application-dev/reference/syscap.md index 5ab69bbb18a97b2645a1300ea7a258741fb19bad..8aabdc7d8f241ee678de4189cad4cbd7fd48df17 100644 --- a/zh-cn/application-dev/reference/syscap.md +++ b/zh-cn/application-dev/reference/syscap.md @@ -93,29 +93,47 @@ DevEco Studio会根据创建的工程所支持的设置自动配置联想能力 ### 判断 API 是否可以使用 -- 方法1:OpenHarmony定义了API canIUse帮助开发者来判断该设备是否支持某个特定的syscap。 - - ```ts - if (canIUse("SystemCapability.ArkUI.ArkUI.Full")) { - console.log("该设备支持SystemCapability.ArkUI.ArkUI.Full"); - } else { - console.log("该设备不支持SystemCapability.ArkUI.ArkUI.Full"); - } - ``` - -- 方法2:开发者可通过import的方式将模块导入,若当前设备不支持该模块,import的结果为undefined,开发者在使用其API时,需要判断其是否存在。 - - ```ts - import geolocation from '@ohos.geolocation'; - - if (geolocation) { - geolocation.getCurrentLocation((location) => { - console.log(location.latitude, location.longitude); - }); - } else { - console.log('该设备不支持位置信息'); - } - ``` +- JS API + +方法1:OpenHarmony定义了API canIUse帮助开发者来判断该设备是否支持某个特定的syscap。 + +```ts +if (canIUse("SystemCapability.ArkUI.ArkUI.Full")) { + console.log("该设备支持SystemCapability.ArkUI.ArkUI.Full"); +} else { + console.log("该设备不支持SystemCapability.ArkUI.ArkUI.Full"); +} +``` + +方法2:开发者可通过import的方式将模块导入,若当前设备不支持该模块,import的结果为undefined,开发者在使用其API时,需要判断其是否存在。 + +```ts +import geolocation from '@ohos.geolocation'; + +if (geolocation) { + geolocation.getCurrentLocation((location) => { + console.log(location.latitude, location.longitude); + }); +} else { + console.log('该设备不支持位置信息'); +} +``` +- Native API + +```c +#include +#include +#include "syscap_ndk.h" + +char syscap[] = "SystemCapability.ArkUI.ArkUI.Full"; +bool result = canIUse(syscap); +if (result) { + printf("SysCap: %s is supported!\n", syscap); +} else { + printf("SysCap: %s is not supported!\n", syscap); +} +``` + 除此之外,开发者可以通过API参考文档查询API接口所属的SysCap。 ### 不同设备相同能力的差异检查