提交 fed5d834 编写于 作者: T taiyi.pei

add canIUse docs.

Signed-off-by: Ntaiyi.pei <peitaiyi@huawei.com>
上级 4a141a3a
...@@ -336,6 +336,7 @@ ...@@ -336,6 +336,7 @@
- [@ohos.web.webview (Webview)](js-apis-webview.md) - [@ohos.web.webview (Webview)](js-apis-webview.md)
- [console (控制台)](js-apis-logs.md) - [console (控制台)](js-apis-logs.md)
- [Timer (定时器)](js-apis-timer.md) - [Timer (定时器)](js-apis-timer.md)
- [syscap (系统能力)](js-apis-syscap.md)
- application - application
- [AccessibilityExtensionContext (辅助功能扩展上下文)](js-apis-inner-application-accessibilityExtensionContext.md) - [AccessibilityExtensionContext (辅助功能扩展上下文)](js-apis-inner-application-accessibilityExtensionContext.md)
......
# 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
...@@ -93,29 +93,47 @@ DevEco Studio会根据创建的工程所支持的设置自动配置联想能力 ...@@ -93,29 +93,47 @@ DevEco Studio会根据创建的工程所支持的设置自动配置联想能力
### 判断 API 是否可以使用 ### 判断 API 是否可以使用
- 方法1:OpenHarmony定义了API canIUse帮助开发者来判断该设备是否支持某个特定的syscap。 - JS API
```ts 方法1:OpenHarmony定义了API canIUse帮助开发者来判断该设备是否支持某个特定的syscap。
if (canIUse("SystemCapability.ArkUI.ArkUI.Full")) {
console.log("该设备支持SystemCapability.ArkUI.ArkUI.Full"); ```ts
} else { if (canIUse("SystemCapability.ArkUI.ArkUI.Full")) {
console.log("该设备不支持SystemCapability.ArkUI.ArkUI.Full"); console.log("该设备支持SystemCapability.ArkUI.ArkUI.Full");
} } else {
``` console.log("该设备不支持SystemCapability.ArkUI.ArkUI.Full");
}
- 方法2:开发者可通过import的方式将模块导入,若当前设备不支持该模块,import的结果为undefined,开发者在使用其API时,需要判断其是否存在。 ```
```ts 方法2:开发者可通过import的方式将模块导入,若当前设备不支持该模块,import的结果为undefined,开发者在使用其API时,需要判断其是否存在。
import geolocation from '@ohos.geolocation';
```ts
if (geolocation) { import geolocation from '@ohos.geolocation';
geolocation.getCurrentLocation((location) => {
console.log(location.latitude, location.longitude); if (geolocation) {
}); geolocation.getCurrentLocation((location) => {
} else { console.log(location.latitude, location.longitude);
console.log('该设备不支持位置信息') });
} } else {
``` console.log('该设备不支持位置信息')
}
```
- Native API
```c
#include <stdio.h>
#include <stdlib.h>
#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。 除此之外,开发者可以通过API参考文档查询API接口所属的SysCap。
### 不同设备相同能力的差异检查 ### 不同设备相同能力的差异检查
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册