未验证 提交 f665e9a2 编写于 作者: O openharmony_ci 提交者: Gitee

!18818 补齐canIUse接口的说明

Merge pull request !18818 from peitaiyi/master
......@@ -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)
......
# 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会根据创建的工程所支持的设置自动配置联想能力
### 判断 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 <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。
### 不同设备相同能力的差异检查
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册