提交 ccc341d7 编写于 作者: C CoderAdo 提交者: Gitee

Merge branch 'master' of gitee.com:openharmony/docs into br_20230608_doc

Signed-off-by: NCoderAdo <duliqun1@h-partners.com>
......@@ -190,7 +190,7 @@ root {
[Description] The HDF places the same type of devices in the same host. You can develop and deploy the driver functionalities of the host by layer, so that one driver has multiple nodes. The following figure shows the HDF driver model.
![hdf-driver-model.png]( ../device-dev/driver/figures/hdf-driver-model.png)
![hdf-driver-model.png](figures/hdf-driver-model.png)
Place devices of the same type in the same host. When adding a device, check whether the host of the same type already exists. If such a host already exists, configure the device in the host. Do not configure the same host again. A device belongs to only one driver. Therefore, do not configure the same device in different hosts.
......
......@@ -48,7 +48,7 @@ try {
.then((uploadTask) => {
uploadTask.on('complete', (taskStates) => {
for (let i = 0; i < taskStates.length; i++) {
console.info(`upload complete taskState: ${JSON.stringify(taskStates[i])}');
console.info(`upload complete taskState: ${JSON.stringify(taskStates[i])}`);
}
});
})
......
......@@ -23,6 +23,92 @@
| bool OH_ResourceManager_ReleaseRawFileDescriptor(const RawFileDescriptor &descriptor) | 释放rawfile的fd。 |
| void OH_ResourceManager_ReleaseNativeResourceManager(NativeResourceManager *resMgr) | 释放native resource manager相关资源。 |
## 函数介绍
1. 根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawDir接口获取RawDir实例。
```c++
RawDir* rawDir = OH_ResourceManager_OpenRawDir(nativeResourceManager, path.c_str());
```
2. 根据RawDir实例,使用OH_ResourceManager_GetRawFileCount接口获取对应目录下的rawfile文件总数 。
```c++
int count = OH_ResourceManager_GetRawFileCount(rawDir);
```
3. 根据RawDir实例,使用OH_ResourceManager_GetRawFileName接口获取目录下对应index的rawfile文件名。
```c++
for (int index = 0; index < count; index++) {
std::string fileName = OH_ResourceManager_GetRawFileName(rawDir, index);
}
```
4. 根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawFile接口获取指定文件名的RawFile实例
```c++
RawFile* rawFile = OH_ResourceManager_OpenRawFile(nativeResourceManager, fileName.c_str());
```
5. 根据RawFile实例,使用OH_ResourceManager_GetRawFileSize接口获取对应rawfile文件大小。
```c++
long rawFileSize = OH_ResourceManager_GetRawFileSize(rawFile);
```
6. 根据RawFile实例,使用OH_ResourceManager_SeekRawFile接口指定rawfile偏移量。
```c++
int position = OH_ResourceManager_SeekRawFile(rawFile, 10, 0);
int position = OH_ResourceManager_SeekRawFile(rawFile, 0 , 1);
int position = OH_ResourceManager_SeekRawFile(rawFile, -10, 2);
```
7. 根据RawFile实例,使用OH_ResourceManager_GetRawFileOffset接口获取rawfile偏移量。
```c++
long rawFileOffset = OH_ResourceManager_GetRawFileOffset(rawFile)
```
8. 根据RawFile实例,使用OH_ResourceManager_ReadRawFile接口读取rawfile文件内容。
```c++
std::unique_ptr<char[]> mediaData = std::make_unique<char[]>(rawFileSize);
long rawFileOffset = OH_ResourceManager_ReadRawFile(rawFile, mediaData.get(), rawFileSize);
```
9. 根据RawFile实例,使用OH_ResourceManager_CloseRawFile接口释放rawfile文件相关资源。
```c++
OH_ResourceManager_CloseRawFile(rawFile);
```
10. 根据RawDir实例,使用OH_ResourceManager_CloseRawDir接口释放rawfile目录相关资源。
```c++
OH_ResourceManager_CloseRawDir(rawDir);
```
11. 根据RawFile实例,使用OH_ResourceManager_GetRawFileDescriptor接口获取rawfile的RawFileDescriptor。
```c++
RawFileDescriptor descriptor;
bool result = OH_ResourceManager_GetRawFileDescriptor(rawFile, descriptor);
```
12. 根据RawFileDescriptor实例,使用OH_ResourceManager_ReleaseRawFileDescriptor接口关闭rawfile的fd。
```c++
OH_ResourceManager_ReleaseRawFileDescriptor(descriptor);
```
13. 根据NativeResourceManager实例,使用OH_ResourceManager_ReleaseNativeResourceManager接口释放native resource manager。
```c++
OH_ResourceManager_ReleaseNativeResourceManager(nativeResourceManager);
```
## 开发步骤
以Js侧获取rawfile文件列表、rawfile文件内容、rawfile描述符{fd, offset, length}三种调用方式为例。
......@@ -293,89 +379,6 @@
}
```
## 函数介绍
1. 根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawDir接口获取RawDir实例。
```c++
RawDir* rawDir = OH_ResourceManager_OpenRawDir(nativeResourceManager, path.c_str());
```
2. 根据RawDir实例,使用OH_ResourceManager_GetRawFileCount接口获取对应目录下的rawfile文件总数 。
```c++
int count = OH_ResourceManager_GetRawFileCount(rawDir);
```
3. 根据RawDir实例,使用OH_ResourceManager_GetRawFileName接口获取目录下对应index的rawfile文件名。
```c++
for (int index = 0; index < count; index++) {
std::string fileName = OH_ResourceManager_GetRawFileName(rawDir, index);
}
```
4. 根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawFile接口获取指定文件名的RawFile实例
```c++
RawFile* rawFile = OH_ResourceManager_OpenRawFile(nativeResourceManager, fileName.c_str());
```
5. 根据RawFile实例,使用OH_ResourceManager_GetRawFileSize接口获取对应rawfile文件大小。
```c++
long rawFileSize = OH_ResourceManager_GetRawFileSize(rawFile);
```
6. 根据RawFile实例,使用OH_ResourceManager_SeekRawFile接口指定rawfile偏移量。
```c++
int position = OH_ResourceManager_SeekRawFile(rawFile, 10, 0);
int position = OH_ResourceManager_SeekRawFile(rawFile, 0 , 1);
int position = OH_ResourceManager_SeekRawFile(rawFile, -10, 2);
```
7. 根据RawFile实例,使用OH_ResourceManager_GetRawFileOffset接口获取rawfile偏移量。
```c++
long rawFileOffset = OH_ResourceManager_GetRawFileOffset(rawFile)
```
8. 根据RawFile实例,使用OH_ResourceManager_ReadRawFile接口读取rawfile文件内容。
```c++
std::unique_ptr<char[]> mediaData = std::make_unique<char[]>(rawFileSize);
long rawFileOffset = OH_ResourceManager_ReadRawFile(rawFile, mediaData.get(), rawFileSize);
```
9. 根据RawFile实例,使用OH_ResourceManager_CloseRawFile接口释放rawfile文件相关资源。
```c++
OH_ResourceManager_CloseRawFile(rawFile);
```
10. 根据RawDir实例,使用OH_ResourceManager_CloseRawDir接口释放rawfile目录相关资源。
```c++
OH_ResourceManager_CloseRawDir(rawDir);
```
11. 根据RawFile实例,使用OH_ResourceManager_GetRawFileDescriptor接口获取rawfile的RawFileDescriptor。
```c++
RawFileDescriptor descriptor;
bool result = OH_ResourceManager_GetRawFileDescriptor(rawFile, descriptor);
```
12. 根据RawFileDescriptor实例,使用OH_ResourceManager_ReleaseRawFileDescriptor接口关闭rawfile的fd。
```c++
OH_ResourceManager_ReleaseRawFileDescriptor(descriptor);
```
13. 根据NativeResourceManager实例,使用OH_ResourceManager_ReleaseNativeResourceManager接口释放native resource manager。
```c++
OH_ResourceManager_ReleaseNativeResourceManager(nativeResourceManager);
```
## 相关实例
- [`NdkRawfile`:获取Rawfile资源](https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Native/NdkRawfile)
......@@ -9,5 +9,6 @@
- [接口参考(ArkTS及JS API)](apis/Readme-CN.md)
- [错误码参考](errorcodes/Readme-CN.md)
- 接口参考(Native API)
- [Native API(NDK)入门](native-api-intro.md)
- [OpenHarmony Native API](native-apis/Readme-CN.md)
- [Native API标准库](native-lib/Readme-CN.md)
......@@ -647,30 +647,20 @@ Wi-Fi P2P群组信息已更改。
- 值: usual.event.data.DISK_EJECT
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
## COMMON_EVENT_VOLUME_REMOVED<sup>9+<sup>
## [COMMON_EVENT_VOLUME_REMOVED<sup>9+<sup>](./common_event/commonEvent-filemanagement.md)
外部存储设备状态变更为移除时发送此公共事件。
- 值: usual.event.data.VOLUME_REMOVED
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
## COMMON_EVENT_VOLUME_UNMOUNTED<sup>9+<sup>
## [COMMON_EVENT_VOLUME_UNMOUNTED<sup>9+<sup>](./common_event/commonEvent-filemanagement.md)
外部存储设备状态变更为卸载时发送此公共事件。
- 值: usual.event.data.VOLUME_UNMOUNTED
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
## COMMON_EVENT_VOLUME_MOUNTED<sup>9+<sup>
## [COMMON_EVENT_VOLUME_MOUNTED<sup>9+<sup>](./common_event/commonEvent-filemanagement.md)
外部存储设备状态变更为挂载时发送此公共事件。
- 值: usual.event.data.VOLUME_MOUNTED
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
## COMMON_EVENT_VOLUME_BAD_REMOVAL<sup>9+<sup>
## [COMMON_EVENT_VOLUME_BAD_REMOVAL<sup>9+<sup>](./common_event/commonEvent-filemanagement.md)
外部存储设备状态变更为挂载状态下移除时发送此公共事件。
- 值: usual.event.data.VOLUME_BAD_REMOVAL
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
## COMMON_EVENT_VOLUME_EJECT<sup>9+<sup>
## [COMMON_EVENT_VOLUME_EJECT<sup>9+<sup>](./common_event/commonEvent-filemanagement.md)
用户已表示希望删除外部存储介质时发送此公共事件。
- 值: usual.event.data.VOLUME_EJECT
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
## COMMON_EVENT_VISIBLE_ACCOUNTS_UPDATED
(预留事件,暂未支持)表示帐户可见更改的公共事件的动作。
......
......@@ -7,3 +7,4 @@
- [电话服务子系统公共事件定义](commonEvent-telephony.md)
- [USB子系统公共事件定义](commonEvent-usb.md)
- [Wifi子系统公共事件定义](commonEvent-wifi.md)
- [文件管理子系统公共事件定义](commonEvent-filemanagement.md)
# 文件管理子系统公共事件定义
文件管理子系统面向应用发布如下系统公共事件,应用如需订阅系统公共事件,请参考公共事件[接口文档](../js-apis-commonEventManager.md)
## COMMON_EVENT_VOLUME_REMOVED<sup>9+<sup>
表示外部存储设备正常移除的公共事件。
- 值: usual.event.data.VOLUME_REMOVED
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
当外部存储设备处于卸载状态,移除该设备时,会发送此公共事件。
## COMMON_EVENT_VOLUME_UNMOUNTED<sup>9+<sup>
表示外部存储设备状态变更为卸载的公共事件。
- 值: usual.event.data.VOLUME_UNMOUNTED
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
当外部存储设备处于挂载状态时,用户选择通过调用[unmount](../js-apis-file-volumemanager.md)接口或者直接移除设备的方法弹出该设备,并且已将外部存储设备卸载成功后,会发送此公共事件。
## COMMON_EVENT_VOLUME_MOUNTED<sup>9+<sup>
表示外部存储设备状态变更为挂载的公共事件。
- 值: usual.event.data.VOLUME_MOUNTED
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
当用户插入外部存储设备自动挂载成功或者将处于卸载状态的外部存储设备调用[mount](../js-apis-file-volumemanager.md)接口进行挂载成功后,会发送此公共事件。
## COMMON_EVENT_VOLUME_BAD_REMOVAL<sup>9+<sup>
表示外部存储设备异常移除的公共事件。
- 值: usual.event.data.VOLUME_BAD_REMOVAL
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
当外部存储设备处于挂载状态时,用户直接移除该外部存储设备,会发送此公共事件。
## COMMON_EVENT_VOLUME_EJECT<sup>9+<sup>
表示外部存储设备即将被弹出的公共事件。
- 值: usual.event.data.VOLUME_EJECT
- 订阅者所需权限: ohos.permission.STORAGE_MANAGER
当外部存储设备处于挂载状态时,用户选择通过调用[unmount](../js-apis-file-volumemanager.md)接口或者直接移除设备的方法弹出该设备时,会发送此公共事件。
......@@ -375,7 +375,7 @@ delTemplate(uri: string, subscriberId: string): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------| ---- | ------------------------- |
| uri | string | 是 | 指示要插入的数据的路径。 |
| uri | string | 是 | 指示要删除的数据的路径。 |
| subscriberId | string | 是 | 订阅者ID,每个订阅者的ID是唯一的。 |
**错误码:**
......@@ -558,7 +558,7 @@ let result: Array<dataShare.OperationResult> = dataShareHelper.off("publishedDat
publish(data: Array&lt;PublishedItem&gt;, bundleName: string, version: number, callback: AsyncCallback&lt;Array&lt;OperationResult&gt;&gt;): void
发布数据,将数据数据更新至数据库。
发布数据,将数据更新至数据库。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer
......@@ -616,7 +616,7 @@ try {
publish(data: Array&lt;PublishedItem&gt;, bundleName: string, callback: AsyncCallback&lt;Array&lt;OperationResult&gt;&gt;): void
发布数据,将数据数据更新至数据库。
发布数据,将数据更新至数据库。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer
......@@ -653,7 +653,7 @@ dataShareHelper.publish(data, "com.acts.ohos.data.datasharetest", publishCallbac
publish(data: Array&lt;PublishedItem&gt;, bundleName: string, version?: number): Promise&lt;Array&lt;OperationResult&gt;&gt;
发布数据,将数据数据更新至数据库。
发布数据,将数据更新至数据库。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer
......
......@@ -2260,10 +2260,10 @@ async function huksAbort() {
| 名称 | 值 | 说明 |
| -------------------------------------------- | ---- | ------------------------------ |
| HUKS_STORAGE_TEMP | 0 | 表示通过本地直接管理密钥。 |
| HUKS_STORAGE_PERSISTENT | 1 | 表示通过HUKS service管理密钥。 |
| HUKS_STORAGE_ONLY_USED_IN_HUKS<sup>10+</sup> | 2 | 表示密钥只存储在huks中。 |
| HUKS_STORAGE_KEY_EXPORT_ALLOWED<sup>10+</sup> | 3 | 表示密钥从huks中导出,不存储。 |
| HUKS_STORAGE_TEMP<sup>(deprecated)</sup> | 0 | 表示通过本地直接管理密钥。<br/>> **说明:** 从API version 10开始废弃,由于开发者正常使用密钥管理过程中并不需要使用此TAG,故无替代接口。针对针对密钥派生场景,可使用HUKS_STORAGE_ONLY_USED_IN_HUKS 与 HUKS_STORAGE_KEY_EXPORT_ALLOWED。 |
| HUKS_STORAGE_PERSISTENT<sup>(deprecated)</sup> | 1 | 表示通过HUKS service管理密钥。<br/>> **说明:** 从API version 10开始废弃,由于开发者正常使用密钥管理过程中并不需要使用此TAG,故无替代接口。针对密钥派生场景,可使用HUKS_STORAGE_ONLY_USED_IN_HUKS 与 HUKS_STORAGE_KEY_EXPORT_ALLOWED。 |
| HUKS_STORAGE_ONLY_USED_IN_HUKS<sup>10+</sup> | 2 | 表示主密钥派生的密钥存储于huks中,由HUKS进行托管 |
| HUKS_STORAGE_KEY_EXPORT_ALLOWED<sup>10+</sup> | 3 | 表示主密钥派生的密钥直接导出给业务方,HUKS不对其进行托管服务 |
## HuksSendType
......
......@@ -328,6 +328,7 @@ struct WebComponent {
}
```
加载的html文件。
```html
<!--index.html-->
<!DOCTYPE html>
......@@ -447,7 +448,7 @@ struct WebComponent {
Button('close')
.onClick(() => {
try {
if (this.msgPort && this.msgPort[1]) {
if (this.msgPort && this.msgPort.length == 2) {
this.msgPort[1].close();
} else {
console.error("msgPort is null, Please initialize first");
......@@ -667,7 +668,7 @@ struct WebComponent {
.onClick(() => {
try {
// 通过$rawfile加载本地资源文件。
this.controller.loadUrl($rawfile('xxx.html'));
this.controller.loadUrl($rawfile('index.html'));
} catch (error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
......@@ -694,7 +695,7 @@ struct WebComponent {
.onClick(() => {
try {
// 通过resource协议加载本地资源文件。
this.controller.loadUrl("resource://rawfile/xxx.html");
this.controller.loadUrl("resource://rawfile/index.html");
} catch (error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
......@@ -707,8 +708,9 @@ struct WebComponent {
3.通过沙箱路径加载本地文件,可以参考[web](../arkui-ts/ts-basic-components-web.md#web)加载沙箱路径的示例代码。
加载的html文件。
```html
<!-- xxx.html -->
<!-- index.html -->
<!DOCTYPE html>
<html>
<body>
......@@ -1339,6 +1341,23 @@ struct Index {
}
```
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
Hello world!
</body>
<script type="text/javascript">
function htmlTest() {
str = objName.test("test function")
console.log('objName.test result:'+ str)
}
</script>
</html>
### runJavaScript
runJavaScript(script: string, callback : AsyncCallback\<string>): void
......@@ -1402,6 +1421,24 @@ struct WebComponent {
}
```
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
Hello world!
</body>
<script type="text/javascript">
function test() {
console.log('Ark WebComponent')
return "This value is from index.html"
}
</script>
</html>
```
### runJavaScript
runJavaScript(script: string): Promise\<string>
......@@ -1466,6 +1503,23 @@ struct WebComponent {
}
```
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
Hello world!
</body>
<script type="text/javascript">
function test() {
console.log('Ark WebComponent')
return "This value is from index.html"
}
</script>
</html>
```
### runJavaScriptExt<sup>10+</sup>
......@@ -1565,8 +1619,11 @@ struct WebComponent {
}
}
}
```
//index.html
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
<html lang="en-gb">
<body>
......@@ -1677,8 +1734,11 @@ struct WebComponent {
}
}
}
```
//index.html
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
<html lang="en-gb">
<body>
......@@ -2174,14 +2234,15 @@ struct WebComponent {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
Web({ src: $rawfile('xxx.html'), controller: this.controller })
Web({ src: $rawfile('index.html'), controller: this.controller })
}
}
}
```
加载的html文件。
```html
<!--xxx.html-->
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -2969,14 +3030,15 @@ struct WebComponent {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
Web({ src: 'www.example.com', controller: this.controller })
Web({ src: $rawfile('index.html'), controller: this.controller })
}
}
}
```
加载的html文件。
```html
<!--xxx.html-->
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -3041,14 +3103,15 @@ struct WebComponent {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
Web({ src: 'www.example.com', controller: this.controller })
Web({ src: $rawfile('index.html'), controller: this.controller })
}
}
}
```
加载的html文件。
```html
<!--xxx.html-->
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -3113,14 +3176,15 @@ struct WebComponent {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
Web({ src: 'www.example.com', controller: this.controller })
Web({ src: $rawfile('index.html'), controller: this.controller })
}
}
}
```
加载的html文件。
```html
<!--xxx.html-->
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......
......@@ -90,7 +90,7 @@ Web(options: { src: ResourceStr, controller: WebviewController | WebController})
```ts
// xxx.ets
import web_webview from '@ohos.web.webview'
let url = 'file://' + globalThis.filesDir + '/xxx.html'
let url = 'file://' + globalThis.filesDir + '/index.html'
@Entry
@Component
......@@ -121,6 +121,7 @@ Web(options: { src: ResourceStr, controller: WebviewController | WebController})
}
```
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
......@@ -585,15 +586,16 @@ horizontalScrollBarAccess(horizontalScrollBar: boolean)
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Column() {
Web({ src: 'www.example.com', controller: this.controller })
Web({ src: $rawfile('index.html'), controller: this.controller })
.horizontalScrollBarAccess(true)
}
}
}
```
加载的html文件。
```html
<!--xxx.html-->
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -638,15 +640,16 @@ verticalScrollBarAccess(verticalScrollBar: boolean)
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Column() {
Web({ src: 'www.example.com', controller: this.controller })
Web({ src: $rawfile('index.html'), controller: this.controller })
.verticalScrollBarAccess(true)
}
}
}
```
加载的html文件。
```html
<!--xxx.html-->
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -1418,7 +1421,7 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) =
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Column() {
Web({ src: $rawfile("xxx.html"), controller: this.controller })
Web({ src: $rawfile("index.html"), controller: this.controller })
.onAlert((event) => {
console.log("event.url:" + event.url)
console.log("event.message:" + event.message)
......@@ -1448,8 +1451,9 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) =
}
```
```
<!--xxx.html-->
加载的html文件。
```html
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -1500,7 +1504,7 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu
build() {
Column() {
Web({ src: $rawfile("xxx.html"), controller: this.controller })
Web({ src: $rawfile("index.html"), controller: this.controller })
.onBeforeUnload((event) => {
console.log("event.url:" + event.url)
console.log("event.message:" + event.message)
......@@ -1530,8 +1534,9 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu
}
```
```
<!--xxx.html-->
加载的html文件。
```html
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -1582,7 +1587,7 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult })
build() {
Column() {
Web({ src: $rawfile("xxx.html"), controller: this.controller })
Web({ src: $rawfile("index.html"), controller: this.controller })
.onConfirm((event) => {
console.log("event.url:" + event.url)
console.log("event.message:" + event.message)
......@@ -1612,8 +1617,9 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult })
}
```
```
<!--xxx.html-->
加载的html文件。
```html
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -1671,7 +1677,7 @@ onPrompt(callback: (event?: { url: string; message: string; value: string; resul
build() {
Column() {
Web({ src: $rawfile("xxx.html"), controller: this.controller })
Web({ src: $rawfile("index.html"), controller: this.controller })
.onPrompt((event) => {
console.log("url:" + event.url)
console.log("message:" + event.message)
......@@ -1702,8 +1708,9 @@ onPrompt(callback: (event?: { url: string; message: string; value: string; resul
}
```
```
<!--xxx.html-->
加载的html文件。
```html
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
......@@ -4933,6 +4940,7 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr
}
```
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
......@@ -4993,7 +5001,7 @@ runJavaScript(options: { script: string, callback?: (result: string) => void })
}
}
```
加载的html文件。
```html
<!-- index.html -->
<!DOCTYPE html>
......@@ -5009,7 +5017,6 @@ runJavaScript(options: { script: string, callback?: (result: string) => void })
}
</script>
</html>
```
### stop<sup>(deprecated)</sup>
......@@ -5075,18 +5082,11 @@ clearHistory(): void
通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookie。通过controller方法中的getCookieManager方法可以获取WebCookie对象,进行后续的cookie管理操作。
### setCookie<sup>(deprecated)</sup>
setCookie(url: string, value: string): boolean
setCookie(): boolean
设置cookie,该方法为同步方法。设置成功返回true,否则返回false。
从API version 9开始不再维护,建议使用[setCookie<sup>9+</sup>](../apis/js-apis-webview.md#setcookie)代替。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ---- | ----------------- |
| url | string | 是 | - | 要设置的cookie所属的url,建议使用完整的url。 |
| value | string | 是 | - | cookie的值。 |
**返回值:**
| 类型 | 说明 |
......@@ -5106,7 +5106,7 @@ setCookie(url: string, value: string): boolean
Column() {
Button('setCookie')
.onClick(() => {
let result = this.controller.getCookieManager().setCookie("https://www.example.com", "a=b")
let result = this.controller.getCookieManager().setCookie()
console.log("result: " + result)
})
Web({ src: 'www.example.com', controller: this.controller })
......
......@@ -56,6 +56,8 @@ Swiper(controller?: SwiperController)
| ----------- | ------------------------------------------ |
| Stretch<sup>(deprecated)</sup> | Swiper滑动一页的宽度为Swiper组件自身的宽度。<br>从API verdion 10开始不再维护,建议使用STRETCH代替。|
| AutoLinear<sup>(deprecated)</sup> | Swiper滑动一页的宽度为子组件宽度中的最大值。<br>从API verdion 10开始不再维护,建议使用AUTO_LINEAR代替。|
| STRETCH<sup>10+</sup> | Swiper滑动一页的宽度为Swiper组件自身的宽度。|
| AUTO_LINEAR<sup>10+</sup> | Swiper滑动一页的宽度为子组件宽度中的最大值。|
## SwiperController
......
......@@ -74,8 +74,9 @@
| [OH_Huks_AlgSuite](#oh_huks_algsuite) { <br/>OH_HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING = 1, <br/>OH_HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING = 2 <br/>} | 密文导入所需的算法套件类型 |
| [OH_Huks_KeyGenerateType](#oh_huks_keygeneratetype) { <br/>OH_HUKS_KEY_GENERATE_TYPE_DEFAULT = 0, <br/>OH_HUKS_KEY_GENERATE_TYPE_DERIVE = 1, <br/>OH_HUKS_KEY_GENERATE_TYPE_AGREE = 2 <br/>} | 生成的密钥类型。 |
| [OH_Huks_KeyFlag](#oh_huks_keyflag) { <br/>OH_HUKS_KEY_FLAG_IMPORT_KEY = 1, <br/>OH_HUKS_KEY_FLAG_GENERATE_KEY = 2, <br/>OH_HUKS_KEY_FLAG_AGREE_KEY = 3, <br/>OH_HUKS_KEY_FLAG_DERIVE_KEY = 4 <br/>} | 密钥的产生方式。 |
| [OH_Huks_KeyStorageType](#oh_huks_keystoragetype) { <br/>OH_HUKS_STORAGE_TEMP = 0, <br/>OH_HUKS_STORAGE_PERSISTENT = 1 <br/>} | 密钥的存储方式。 |
| [OH_Huks_KeyStorageType](#oh_huks_keystoragetype) { <br/>OH_HUKS_STORAGE_TEMP = 0, <br/>OH_HUKS_STORAGE_PERSISTENT = 1, <br/>OH_HUKS_STORAGE_ONLY_USED_IN_HUKS = 2, <br/>OH_HUKS_STORAGE_KEY_EXPORT_ALLOWED = 3 <br/>} | 密钥的存储方式。 |
| [OH_Huks_ImportKeyType](#oh_huks_importkeytype) { <br/>OH_HUKS_KEY_TYPE_PUBLIC_KEY = 0, <br/>OH_HUKS_KEY_TYPE_PRIVATE_KEY = 1, <br/>OH_HUKS_KEY_TYPE_KEY_PAIR = 2 <br/>} | 导入密钥的类型,默认为导入公钥,导入对称密钥时不需要该字段。 |
| [OH_Huks_RsaPssSaltLenType](#oh_huks_rsapsssaltlentype) { <br/> OH_HUKS_RSA_PSS_SALT_LEN_DIGEST = 0, OH_HUKS_RSA_PSS_SALT_LEN_MAX = 1 <br/>} | RSA在签名验签、填充模式为PSS时需要指定的盐值长度类型。 |
| [OH_Huks_ErrCode](#oh_huks_errcode) {<br/>OH_HUKS_SUCCESS = 0, <br/>OH_HUKS_ERR_CODE_PERMISSION_FAIL = 201, <br/>OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT = 401, <br/>OH_HUKS_ERR_CODE_NOT_SUPPORTED_API = 801,<br/>OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED = 12000001, <br/>OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT = 12000002, <br/>OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT = 12000003, <br/>OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL = 12000004,<br/>OH_HUKS_ERR_CODE_COMMUNICATION_FAIL = 12000005, <br/>OH_HUKS_ERR_CODE_CRYPTO_FAIL = 12000006, <br/>OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED = 12000007, <br/>OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED = 12000008,<br/>OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT = 12000009, <br/>OH_HUKS_ERR_CODE_SESSION_LIMIT = 12000010, <br/>OH_HUKS_ERR_CODE_ITEM_NOT_EXIST = 12000011, <br/>OH_HUKS_ERR_CODE_INTERNAL_ERROR = 12000012,<br/>OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST = 12000013<br/>} | 错误码。 |
| [OH_Huks_TagType](#oh_huks_tagtype) {<br/>OH_HUKS_TAG_TYPE_INVALID = 0 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_INT = 1 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_UINT = 2 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_ULONG = 3 &lt;&lt; 28,<br/>OH_HUKS_TAG_TYPE_BOOL = 4 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_BYTES = 5 &lt;&lt; 28<br/>} | 参数集中参数类型的掩码值。 |
| [OH_Huks_UserAuthType](#oh_huks_userauthtype) { <br/>OH_HUKS_USER_AUTH_TYPE_FINGERPRINT = 1 &lt;&lt; 0, <br/>OH_HUKS_USER_AUTH_TYPE_FACE = 1 &lt;&lt; 1, <br/>OH_HUKS_USER_AUTH_TYPE_PIN = 1 &lt;&lt; 2 <br/>} | 密钥访问控制中的用户认证类型 |
......@@ -83,7 +84,7 @@
| [OH_Huks_ChallengeType](#oh_huks_challengetype) { <br/>OH_HUKS_CHALLENGE_TYPE_NORMAL = 0, <br/>OH_HUKS_CHALLENGE_TYPE_CUSTOM = 1, <br/>OH_HUKS_CHALLENGE_TYPE_NONE = 2 <br/>} | 密钥使用时生成challenge的类型 |
| [OH_Huks_ChallengePosition](#oh_huks_challengeposition) { <br/>OH_HUKS_CHALLENGE_POS_0 = 0, <br/>OH_HUKS_CHALLENGE_POS_1, <br/>OH_HUKS_CHALLENGE_POS_2, <br/>OH_HUKS_CHALLENGE_POS_3 <br/>} | challenge类型为用户自定义类型时,生成的challenge有效长度仅为8字节连续的数据,且仅支持4种位置。 |
| [OH_Huks_SecureSignType](#oh_huks_securesigntype) { OH_HUKS_SECURE_SIGN_WITH_AUTHINFO = 1 } | 生成或导入密钥时,指定该密钥的安全签名类型。 |
| [OH_Huks_Tag](#oh_huks_tag) {<br/> OH_HUKS_TAG_ALGORITHM = OH_HUKS_TAG_TYPE_UINT \| 1, OH_HUKS_TAG_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 2, OH_HUKS_TAG_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 3,<br/>OH_HUKS_TAG_DIGEST = OH_HUKS_TAG_TYPE_UINT \| 4, OH_HUKS_TAG_PADDING = OH_HUKS_TAG_TYPE_UINT \| 5, OH_HUKS_TAG_BLOCK_MODE = OH_HUKS_TAG_TYPE_UINT \| 6, OH_HUKS_TAG_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 7,<br/>OH_HUKS_TAG_ASSOCIATED_DATA = OH_HUKS_TAG_TYPE_BYTES \| 8, OH_HUKS_TAG_NONCE = OH_HUKS_TAG_TYPE_BYTES \| 9, OH_HUKS_TAG_IV = OH_HUKS_TAG_TYPE_BYTES \| 10, OH_HUKS_TAG_INFO = OH_HUKS_TAG_TYPE_BYTES \| 11,<br/>OH_HUKS_TAG_SALT = OH_HUKS_TAG_TYPE_BYTES \| 12, OH_HUKS_TAG_ITERATION = OH_HUKS_TAG_TYPE_UINT \| 14, OH_HUKS_TAG_KEY_GENERATE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 15, OH_HUKS_TAG_AGREE_ALG = OH_HUKS_TAG_TYPE_UINT \| 19,<br/>OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 20, OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 21, OH_HUKS_TAG_AGREE_PUBLIC_KEY = OH_HUKS_TAG_TYPE_BYTES \| 22, OH_HUKS_TAG_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 23,<br/>OH_HUKS_TAG_DERIVE_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 24, OH_HUKS_TAG_IMPORT_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 25, OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE = OH_HUKS_TAG_TYPE_UINT \| 26, OH_HUKS_TAG_ALL_USERS = OH_HUKS_TAG_TYPE_BOOL \| 301,<br/>OH_HUKS_TAG_USER_ID = OH_HUKS_TAG_TYPE_UINT \| 302, OH_HUKS_TAG_NO_AUTH_REQUIRED = OH_HUKS_TAG_TYPE_BOOL \| 303, OH_HUKS_TAG_USER_AUTH_TYPE = OH_HUKS_TAG_TYPE_UINT \| 304, OH_HUKS_TAG_AUTH_TIMEOUT = OH_HUKS_TAG_TYPE_UINT \| 305,<br/>OH_HUKS_TAG_AUTH_TOKEN = OH_HUKS_TAG_TYPE_BYTES \| 306, OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE = OH_HUKS_TAG_TYPE_UINT \| 307, OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 308, OH_HUKS_TAG_CHALLENGE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 309,<br/>OH_HUKS_TAG_CHALLENGE_POS = OH_HUKS_TAG_TYPE_UINT \| 310, OH_HUKS_TAG_ATTESTATION_CHALLENGE = OH_HUKS_TAG_TYPE_BYTES \| 501, OH_HUKS_TAG_ATTESTATION_APPLICATION_ID = OH_HUKS_TAG_TYPE_BYTES \| 502, OH_HUKS_TAG_ATTESTATION_ID_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 511,<br/>OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO = OH_HUKS_TAG_TYPE_BYTES \| 514, OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO = OH_HUKS_TAG_TYPE_BYTES \| 515,<br/>OH_HUKS_TAG_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1001, OH_HUKS_TAG_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1002, OH_HUKS_TAG_IS_ALLOWED_WRAP = OH_HUKS_TAG_TYPE_BOOL \| 1003, OH_HUKS_TAG_KEY_WRAP_TYPE = OH_HUKS_TAG_TYPE_UINT \| 1004,<br/>OH_HUKS_TAG_KEY_AUTH_ID = OH_HUKS_TAG_TYPE_BYTES \| 1005, OH_HUKS_TAG_KEY_ROLE = OH_HUKS_TAG_TYPE_UINT \| 1006, OH_HUKS_TAG_KEY_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1007, OH_HUKS_TAG_IS_ASYNCHRONIZED = OH_HUKS_TAG_TYPE_UINT \| 1008,<br/> OH_HUKS_TAG_KEY_DOMAIN = OH_HUKS_TAG_TYPE_UINT \| 1011, OH_HUKS_TAG_SYMMETRIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20001,<br/>OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20002, OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20003<br/>} | 参数集所用的TAG值枚举 |
| [OH_Huks_Tag](#oh_huks_tag) {<br/> OH_HUKS_TAG_ALGORITHM = OH_HUKS_TAG_TYPE_UINT \| 1, OH_HUKS_TAG_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 2, OH_HUKS_TAG_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 3,<br/>OH_HUKS_TAG_DIGEST = OH_HUKS_TAG_TYPE_UINT \| 4, OH_HUKS_TAG_PADDING = OH_HUKS_TAG_TYPE_UINT \| 5, OH_HUKS_TAG_BLOCK_MODE = OH_HUKS_TAG_TYPE_UINT \| 6, OH_HUKS_TAG_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 7,<br/>OH_HUKS_TAG_ASSOCIATED_DATA = OH_HUKS_TAG_TYPE_BYTES \| 8, OH_HUKS_TAG_NONCE = OH_HUKS_TAG_TYPE_BYTES \| 9, OH_HUKS_TAG_IV = OH_HUKS_TAG_TYPE_BYTES \| 10, OH_HUKS_TAG_INFO = OH_HUKS_TAG_TYPE_BYTES \| 11,<br/>OH_HUKS_TAG_SALT = OH_HUKS_TAG_TYPE_BYTES \| 12, OH_HUKS_TAG_ITERATION = OH_HUKS_TAG_TYPE_UINT \| 14, OH_HUKS_TAG_KEY_GENERATE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 15, OH_HUKS_TAG_AGREE_ALG = OH_HUKS_TAG_TYPE_UINT \| 19,<br/>OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 20, OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 21, OH_HUKS_TAG_AGREE_PUBLIC_KEY = OH_HUKS_TAG_TYPE_BYTES \| 22, OH_HUKS_TAG_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 23,<br/>OH_HUKS_TAG_DERIVE_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 24, OH_HUKS_TAG_IMPORT_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 25, OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE = OH_HUKS_TAG_TYPE_UINT \| 26, OH_HUKS_TAG_DERIVED_AGREED_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 29, OH_HUKS_TAG_RSA_PSS_SALT_LEN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 30, OH_HUKS_TAG_ALL_USERS = OH_HUKS_TAG_TYPE_BOOL \| 301,<br/>OH_HUKS_TAG_USER_ID = OH_HUKS_TAG_TYPE_UINT \| 302, OH_HUKS_TAG_NO_AUTH_REQUIRED = OH_HUKS_TAG_TYPE_BOOL \| 303, OH_HUKS_TAG_USER_AUTH_TYPE = OH_HUKS_TAG_TYPE_UINT \| 304, OH_HUKS_TAG_AUTH_TIMEOUT = OH_HUKS_TAG_TYPE_UINT \| 305,<br/>OH_HUKS_TAG_AUTH_TOKEN = OH_HUKS_TAG_TYPE_BYTES \| 306, OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE = OH_HUKS_TAG_TYPE_UINT \| 307, OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 308, OH_HUKS_TAG_CHALLENGE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 309,<br/>OH_HUKS_TAG_CHALLENGE_POS = OH_HUKS_TAG_TYPE_UINT \| 310, OH_HUKS_TAG_KEY_AUTH_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 311, OH_HUKS_TAG_ATTESTATION_CHALLENGE = OH_HUKS_TAG_TYPE_BYTES \| 501, OH_HUKS_TAG_ATTESTATION_APPLICATION_ID = OH_HUKS_TAG_TYPE_BYTES \| 502, OH_HUKS_TAG_ATTESTATION_ID_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 511,<br/>OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO = OH_HUKS_TAG_TYPE_BYTES \| 514, OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO = OH_HUKS_TAG_TYPE_BYTES \| 515,<br/>OH_HUKS_TAG_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1001, OH_HUKS_TAG_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1002, OH_HUKS_TAG_IS_ALLOWED_WRAP = OH_HUKS_TAG_TYPE_BOOL \| 1003, OH_HUKS_TAG_KEY_WRAP_TYPE = OH_HUKS_TAG_TYPE_UINT \| 1004,<br/>OH_HUKS_TAG_KEY_AUTH_ID = OH_HUKS_TAG_TYPE_BYTES \| 1005, OH_HUKS_TAG_KEY_ROLE = OH_HUKS_TAG_TYPE_UINT \| 1006, OH_HUKS_TAG_KEY_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1007, OH_HUKS_TAG_IS_ASYNCHRONIZED = OH_HUKS_TAG_TYPE_UINT \| 1008,<br/> OH_HUKS_TAG_KEY_DOMAIN = OH_HUKS_TAG_TYPE_UINT \| 1011, OH_HUKS_TAG_SYMMETRIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20001,<br/>OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20002, OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20003<br/>} | 参数集所用的TAG值枚举 |
## 枚举类型说明
......@@ -175,6 +176,23 @@ enum OH_Huks_CipherMode
| OH_HUKS_MODE_GCM | 使用GCM加密模式。 |
### OH_Huks_RsaPssSaltLenType
```
enum OH_Huks_RsaPssSaltLenType
```
**描述:**
RSA在签名验签、填充模式为PSS时需要指定的盐值长度类型。
**起始版本:**
10
| 枚举值 | 描述 |
| -------- | -------- |
| OH_HUKS_RSA_PSS_SALT_LEN_DIGEST | 以摘要长度设置盐值长度。 |
| OH_HUKS_RSA_PSS_SALT_LEN_MAX | 以最大长度设置盐值长度。 |
### OH_Huks_ErrCode
......@@ -389,6 +407,8 @@ enum OH_Huks_KeyStorageType
| -------- | -------- |
| OH_HUKS_STORAGE_TEMP | 通过本地直接管理密钥。 |
| OH_HUKS_STORAGE_PERSISTENT | 通过HUKS service管理密钥。 |
| OH_HUKS_STORAGE_ONLY_USED_IN_HUKS | 密钥只存储在huks中。 |
| OH_HUKS_STORAGE_KEY_EXPORT_ALLOWED | 密钥从huks中导出,不存储。 |
### OH_Huks_SecureSignType
......@@ -438,6 +458,8 @@ enum OH_Huks_Tag
| OH_HUKS_TAG_DERIVE_KEY_SIZE | 派生密钥大小。 |
| OH_HUKS_TAG_IMPORT_KEY_TYPE | 导入密钥类型, 类型可在枚举OH_Huks_ImportKeyType中选择。 |
| OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE | 导入加密密钥的套件。 |
| OH_HUKS_TAG_DERIVED_AGREED_KEY_STORAGE_FLAG | 派生密钥/协商密钥的存储类型。 |
| OH_HUKS_TAG_RSA_PSS_SALT_LEN_TYPE | RSA算法,填充模式为PSS时的盐值长度类型。 |
| OH_HUKS_TAG_ALL_USERS | 密钥使用访问控制和使用认证相关的标签取值范围: 301 - 500 多用户中的所有用户。 |
| OH_HUKS_TAG_USER_ID | 表示多用户id。 |
| OH_HUKS_TAG_NO_AUTH_REQUIRED | 表示是否需要密钥访问控制。 |
......@@ -448,6 +470,7 @@ enum OH_Huks_Tag
| OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE | 表示生成或导入密钥时,指定该密钥的签名类型。 |
| OH_HUKS_TAG_CHALLENGE_TYPE | 表示密钥使用时生成的challenge类型。从OH_Huks_ChallengeType中选择。 |
| OH_HUKS_TAG_CHALLENGE_POS | 表示challenge类型为用户自定义类型时,huks产生的challenge有效长度仅为8字节连续的数据的位置。从OH_Huks_ChallengePosition中选择。 |
| H_HUKS_TAG_KEY_AUTH_PURPOSE | 表示密钥认证用途的类型。 |
| OH_HUKS_TAG_ATTESTATION_CHALLENGE | 密钥认证相关的标签值: 501 - 600 密钥认证时的挑战值。 |
| OH_HUKS_TAG_ATTESTATION_APPLICATION_ID | 密钥认证时拥有该密钥的application的Id。 |
| OH_HUKS_TAG_ATTESTATION_ID_ALIAS | 密钥别名。 |
......
......@@ -69,8 +69,9 @@
| [OH_Huks_AlgSuite](_huks_type_api.md#oh_huks_algsuite) { <br/>OH_HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING = 1, <br/>OH_HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING = 2 <br/>} | 密文导入所需的算法套件类型 |
| [OH_Huks_KeyGenerateType](_huks_type_api.md#oh_huks_keygeneratetype) { <br/>OH_HUKS_KEY_GENERATE_TYPE_DEFAULT = 0, <br/>OH_HUKS_KEY_GENERATE_TYPE_DERIVE = 1, <br/>OH_HUKS_KEY_GENERATE_TYPE_AGREE = 2 <br/>} | 生成的密钥类型。 |
| [OH_Huks_KeyFlag](_huks_type_api.md#oh_huks_keyflag) { <br/>OH_HUKS_KEY_FLAG_IMPORT_KEY = 1, <br/>OH_HUKS_KEY_FLAG_GENERATE_KEY = 2, <br/>OH_HUKS_KEY_FLAG_AGREE_KEY = 3, <br/>OH_HUKS_KEY_FLAG_DERIVE_KEY = 4 <br/>} | 密钥的产生方式。 |
| [OH_Huks_KeyStorageType](_huks_type_api.md#oh_huks_keystoragetype) { <br/>OH_HUKS_STORAGE_TEMP = 0, <br/>OH_HUKS_STORAGE_PERSISTENT = 1 <br/>} | 密钥的存储方式。 |
| [OH_Huks_KeyStorageType](_huks_type_api.md#oh_huks_keystoragetype) { <br/>OH_HUKS_STORAGE_TEMP = 0, <br/>OH_HUKS_STORAGE_PERSISTENT = 1, <br/>OH_HUKS_STORAGE_ONLY_USED_IN_HUKS = 2, <br/>OH_HUKS_STORAGE_KEY_EXPORT_ALLOWED = 3 <br/>} | 密钥的存储方式。 |
| [OH_Huks_ImportKeyType](_huks_type_api.md#oh_huks_importkeytype) { <br/>OH_HUKS_KEY_TYPE_PUBLIC_KEY = 0, <br/>OH_HUKS_KEY_TYPE_PRIVATE_KEY = 1, <br/>OH_HUKS_KEY_TYPE_KEY_PAIR = 2 <br/>}| 导入密钥的类型,默认为导入公钥,导入对称密钥时不需要该字段。 |
| [OH_Huks_RsaPssSaltLenType](_huks_type_api.md#oh_huks_rsapsssaltlentype) { <br/> OH_HUKS_RSA_PSS_SALT_LEN_DIGEST = 0, OH_HUKS_RSA_PSS_SALT_LEN_MAX = 1 <br/>} | RSA在签名验签、填充模式为PSS时需要指定的盐值长度类型。 |
| [OH_Huks_ErrCode](_huks_type_api.md#oh_huks_errcode) {<br/>OH_HUKS_SUCCESS = 0, <br/>OH_HUKS_ERR_CODE_PERMISSION_FAIL = 201, <br/>OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT = 401, <br/>OH_HUKS_ERR_CODE_NOT_SUPPORTED_API = 801,<br/>OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED = 12000001, <br/>OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT = 12000002, <br/>OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT = 12000003, <br/>OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL = 12000004,<br/>OH_HUKS_ERR_CODE_COMMUNICATION_FAIL = 12000005, <br/>OH_HUKS_ERR_CODE_CRYPTO_FAIL = 12000006, <br/>OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED = 12000007, <br/>OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED = 12000008,<br/>OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT = 12000009, <br/>OH_HUKS_ERR_CODE_SESSION_LIMIT = 12000010, <br/>OH_HUKS_ERR_CODE_ITEM_NOT_EXIST = 12000011, <br/>OH_HUKS_ERR_CODE_INTERNAL_ERROR = 12000012,<br/>OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST = 12000013<br/>} | 错误码。 |
| [OH_Huks_TagType](_huks_type_api.md#oh_huks_tagtype) {<br/>OH_HUKS_TAG_TYPE_INVALID = 0 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_INT = 1 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_UINT = 2 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_ULONG = 3 &lt;&lt; 28,<br/>OH_HUKS_TAG_TYPE_BOOL = 4 &lt;&lt; 28, <br/>OH_HUKS_TAG_TYPE_BYTES = 5 &lt;&lt; 28<br/>} | 参数集中参数类型的掩码值。 |
| [OH_Huks_UserAuthType](_huks_type_api.md#oh_huks_userauthtype) { <br/>OH_HUKS_USER_AUTH_TYPE_FINGERPRINT = 1 &lt;&lt; 0, <br/>OH_HUKS_USER_AUTH_TYPE_FACE = 1 &lt;&lt; 1, <br/>OH_HUKS_USER_AUTH_TYPE_PIN = 1 &lt;&lt; 2 <br/>} | 密钥访问控制中的用户认证类型 |
......@@ -78,4 +79,4 @@
| [OH_Huks_ChallengeType](_huks_type_api.md#oh_huks_challengetype) { <br/>OH_HUKS_CHALLENGE_TYPE_NORMAL = 0, <br/>OH_HUKS_CHALLENGE_TYPE_CUSTOM = 1, <br/>OH_HUKS_CHALLENGE_TYPE_NONE = 2 <br/>} | 密钥使用时生成challenge的类型 |
| [OH_Huks_ChallengePosition](_huks_type_api.md#oh_huks_challengeposition) { <br/>OH_HUKS_CHALLENGE_POS_0 = 0, <br/>OH_HUKS_CHALLENGE_POS_1, <br/>OH_HUKS_CHALLENGE_POS_2, <br/>OH_HUKS_CHALLENGE_POS_3 <br/>} | challenge类型为用户自定义类型时,生成的challenge有效长度仅为8字节连续的数据,且仅支持4种位置。 |
| [OH_Huks_SecureSignType](_huks_type_api.md#oh_huks_securesigntype) { OH_HUKS_SECURE_SIGN_WITH_AUTHINFO = 1 } | 生成或导入密钥时,指定该密钥的安全签名类型。 |
| [OH_Huks_Tag](_huks_type_api.md#oh_huks_tag) {<br/>OH_HUKS_TAG_ALGORITHM = OH_HUKS_TAG_TYPE_UINT \| 1, OH_HUKS_TAG_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 2, OH_HUKS_TAG_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 3,<br/>OH_HUKS_TAG_DIGEST = OH_HUKS_TAG_TYPE_UINT \| 4, OH_HUKS_TAG_PADDING = OH_HUKS_TAG_TYPE_UINT \| 5, OH_HUKS_TAG_BLOCK_MODE = OH_HUKS_TAG_TYPE_UINT \| 6, OH_HUKS_TAG_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 7,<br/>OH_HUKS_TAG_ASSOCIATED_DATA = OH_HUKS_TAG_TYPE_BYTES \| 8, OH_HUKS_TAG_NONCE = OH_HUKS_TAG_TYPE_BYTES \| 9, OH_HUKS_TAG_IV = OH_HUKS_TAG_TYPE_BYTES \| 10, OH_HUKS_TAG_INFO = OH_HUKS_TAG_TYPE_BYTES \| 11,<br/>OH_HUKS_TAG_SALT = OH_HUKS_TAG_TYPE_BYTES \| 12, OH_HUKS_TAG_ITERATION = OH_HUKS_TAG_TYPE_UINT \| 14, OH_HUKS_TAG_KEY_GENERATE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 15,<br/>OH_HUKS_TAG_AGREE_ALG = OH_HUKS_TAG_TYPE_UINT \| 19,<br/>OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 20, OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 21, OH_HUKS_TAG_AGREE_PUBLIC_KEY = OH_HUKS_TAG_TYPE_BYTES \| 22, OH_HUKS_TAG_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 23,<br/>OH_HUKS_TAG_DERIVE_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 24, OH_HUKS_TAG_IMPORT_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 25, OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE = OH_HUKS_TAG_TYPE_UINT \| 26, OH_HUKS_TAG_ALL_USERS = OH_HUKS_TAG_TYPE_BOOL \| 301,<br/>OH_HUKS_TAG_USER_ID = OH_HUKS_TAG_TYPE_UINT \| 302, OH_HUKS_TAG_NO_AUTH_REQUIRED = OH_HUKS_TAG_TYPE_BOOL \| 303, OH_HUKS_TAG_USER_AUTH_TYPE = OH_HUKS_TAG_TYPE_UINT \| 304, OH_HUKS_TAG_AUTH_TIMEOUT = OH_HUKS_TAG_TYPE_UINT \| 305,<br/>OH_HUKS_TAG_AUTH_TOKEN = OH_HUKS_TAG_TYPE_BYTES \| 306, OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE = OH_HUKS_TAG_TYPE_UINT \| 307, OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 308, OH_HUKS_TAG_CHALLENGE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 309,<br/>OH_HUKS_TAG_CHALLENGE_POS = OH_HUKS_TAG_TYPE_UINT \| 310, OH_HUKS_TAG_ATTESTATION_CHALLENGE = OH_HUKS_TAG_TYPE_BYTES \| 501, OH_HUKS_TAG_ATTESTATION_APPLICATION_ID = OH_HUKS_TAG_TYPE_BYTES \| 502, OH_HUKS_TAG_ATTESTATION_ID_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 511,<br/> OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO = OH_HUKS_TAG_TYPE_BYTES \| 514, OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO = OH_HUKS_TAG_TYPE_BYTES \| 515,<br/>OH_HUKS_TAG_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1001, OH_HUKS_TAG_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1002, OH_HUKS_TAG_IS_ALLOWED_WRAP = OH_HUKS_TAG_TYPE_BOOL \| 1003, OH_HUKS_TAG_KEY_WRAP_TYPE = OH_HUKS_TAG_TYPE_UINT \| 1004,<br/>OH_HUKS_TAG_KEY_AUTH_ID = OH_HUKS_TAG_TYPE_BYTES \| 1005, OH_HUKS_TAG_KEY_ROLE = OH_HUKS_TAG_TYPE_UINT \| 1006, OH_HUKS_TAG_KEY_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1007, OH_HUKS_TAG_IS_ASYNCHRONIZED = OH_HUKS_TAG_TYPE_UINT \| 1008,<br/> OH_HUKS_TAG_KEY_DOMAIN = OH_HUKS_TAG_TYPE_UINT \| 1011, OH_HUKS_TAG_SYMMETRIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20001,<br/>OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20002, OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20003<br/>} | 参数集所用的TAG值枚举 |
| [OH_Huks_Tag](_huks_type_api.md#oh_huks_tag) {<br/> OH_HUKS_TAG_ALGORITHM = OH_HUKS_TAG_TYPE_UINT \| 1, OH_HUKS_TAG_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 2, OH_HUKS_TAG_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 3,<br/>OH_HUKS_TAG_DIGEST = OH_HUKS_TAG_TYPE_UINT \| 4, OH_HUKS_TAG_PADDING = OH_HUKS_TAG_TYPE_UINT \| 5, OH_HUKS_TAG_BLOCK_MODE = OH_HUKS_TAG_TYPE_UINT \| 6, OH_HUKS_TAG_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 7,<br/>OH_HUKS_TAG_ASSOCIATED_DATA = OH_HUKS_TAG_TYPE_BYTES \| 8, OH_HUKS_TAG_NONCE = OH_HUKS_TAG_TYPE_BYTES \| 9, OH_HUKS_TAG_IV = OH_HUKS_TAG_TYPE_BYTES \| 10, OH_HUKS_TAG_INFO = OH_HUKS_TAG_TYPE_BYTES \| 11,<br/>OH_HUKS_TAG_SALT = OH_HUKS_TAG_TYPE_BYTES \| 12, OH_HUKS_TAG_ITERATION = OH_HUKS_TAG_TYPE_UINT \| 14, OH_HUKS_TAG_KEY_GENERATE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 15, OH_HUKS_TAG_AGREE_ALG = OH_HUKS_TAG_TYPE_UINT \| 19,<br/>OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 20, OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 21, OH_HUKS_TAG_AGREE_PUBLIC_KEY = OH_HUKS_TAG_TYPE_BYTES \| 22, OH_HUKS_TAG_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 23,<br/>OH_HUKS_TAG_DERIVE_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 24, OH_HUKS_TAG_IMPORT_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 25, OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE = OH_HUKS_TAG_TYPE_UINT \| 26,<br/> OH_HUKS_TAG_DERIVED_AGREED_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 29, <br/>OH_HUKS_TAG_RSA_PSS_SALT_LEN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 30, OH_HUKS_TAG_ALL_USERS = OH_HUKS_TAG_TYPE_BOOL \| 301,<br/>OH_HUKS_TAG_USER_ID = OH_HUKS_TAG_TYPE_UINT \| 302, OH_HUKS_TAG_NO_AUTH_REQUIRED = OH_HUKS_TAG_TYPE_BOOL \| 303, OH_HUKS_TAG_USER_AUTH_TYPE = OH_HUKS_TAG_TYPE_UINT \| 304, OH_HUKS_TAG_AUTH_TIMEOUT = OH_HUKS_TAG_TYPE_UINT \| 305,<br/>OH_HUKS_TAG_AUTH_TOKEN = OH_HUKS_TAG_TYPE_BYTES \| 306, OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE = OH_HUKS_TAG_TYPE_UINT \| 307, OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 308, OH_HUKS_TAG_CHALLENGE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 309,<br/>OH_HUKS_TAG_CHALLENGE_POS = OH_HUKS_TAG_TYPE_UINT \| 310, OH_HUKS_TAG_KEY_AUTH_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 311, OH_HUKS_TAG_ATTESTATION_CHALLENGE = OH_HUKS_TAG_TYPE_BYTES \| 501, OH_HUKS_TAG_ATTESTATION_APPLICATION_ID = OH_HUKS_TAG_TYPE_BYTES \| 502, OH_HUKS_TAG_ATTESTATION_ID_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 511,<br/>OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO = OH_HUKS_TAG_TYPE_BYTES \| 514, OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO = OH_HUKS_TAG_TYPE_BYTES \| 515,<br/>OH_HUKS_TAG_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1001, OH_HUKS_TAG_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1002, OH_HUKS_TAG_IS_ALLOWED_WRAP = OH_HUKS_TAG_TYPE_BOOL \| 1003, OH_HUKS_TAG_KEY_WRAP_TYPE = OH_HUKS_TAG_TYPE_UINT \| 1004,<br/>OH_HUKS_TAG_KEY_AUTH_ID = OH_HUKS_TAG_TYPE_BYTES \| 1005, OH_HUKS_TAG_KEY_ROLE = OH_HUKS_TAG_TYPE_UINT \| 1006, OH_HUKS_TAG_KEY_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1007, OH_HUKS_TAG_IS_ASYNCHRONIZED = OH_HUKS_TAG_TYPE_UINT \| 1008,<br/> OH_HUKS_TAG_KEY_DOMAIN = OH_HUKS_TAG_TYPE_UINT \| 1011, OH_HUKS_TAG_SYMMETRIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20001,<br/>OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20002, OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20003<br/>} | 参数集所用的TAG值枚举 |
\ No newline at end of file
# Rawfile
提供操作rawfile目录和rawfile文件的功能。
功能包括遍历、打开、搜索、读取和关闭rawfile。
提供操作rawfile目录和rawfile文件的功能,包括打开、遍历、搜索、读取和关闭rawfile。
**起始版本:**
......@@ -50,12 +47,12 @@
| [OH_ResourceManager_CloseRawDir](#oh_resourcemanager_closerawdir) ([RawDir](#rawdir) \*rawDir) | 关闭已打开的[RawDir](#rawdir)并释放所有相关联资源。 |
| [OH_ResourceManager_ReadRawFile](#oh_resourcemanager_readrawfile) (const [RawFile](#rawfile) \*rawFile, void \*buf, size_t length) | 读取rawfile。 |
| [OH_ResourceManager_SeekRawFile](#oh_resourcemanager_seekrawfile) (const [RawFile](#rawfile) \*rawFile, long offset, int whence) | 基于指定的offset,在rawfile文件内搜索读写数据的位置。 |
| [OH_ResourceManager_GetRawFileSize](#oh_resourcemanager_getrawfilesize) ([RawFile](#rawfile) \*rawFile) | 获取rawfile长度,单位为int32_t。 |
| [OH_ResourceManager_GetRawFileSize](#oh_resourcemanager_getrawfilesize) ([RawFile](#rawfile) \*rawFile) | 获取rawfile文件大小。 |
| [OH_ResourceManager_CloseRawFile](#oh_resourcemanager_closerawfile) ([RawFile](#rawfile) \*rawFile) | 关闭已打开的[RawFile](#rawfile) 以及释放所有相关联资源。 |
| [OH_ResourceManager_GetRawFileOffset](#oh_resourcemanager_getrawfileoffset) (const [RawFile](#rawfile) \*rawFile) | 获取rawfile当前的offset,单位为int32_t。 |
| [OH_ResourceManager_GetRawFileDescriptor](#oh_resourcemanager_getrawfiledescriptor) (const [RawFile](#rawfile) \*rawFile, [RawFileDescriptor](_raw_file_descriptor.md) &amp;descriptor) | 基于offset(单位为int32_t)和文件长度打开rawfile,并获取rawfile文件描述符。 |
| [OH_ResourceManager_GetRawFileOffset](#oh_resourcemanager_getrawfileoffset) (const [RawFile](#rawfile) \*rawFile) | 获取rawfile当前的offset。 |
| [OH_ResourceManager_GetRawFileDescriptor](#oh_resourcemanager_getrawfiledescriptor) (const [RawFile](#rawfile) \*rawFile, [RawFileDescriptor](_raw_file_descriptor.md) &amp;descriptor) | 基于offset和文件长度打开rawfile,并获取rawfile文件描述符。 |
| [OH_ResourceManager_ReleaseRawFileDescriptor](#oh_resourcemanager_releaserawfiledescriptor) (const [RawFileDescriptor](_raw_file_descriptor.md) &amp;descriptor) | 关闭rawfile文件描述符。 |
| [OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager) (napi_env env, napi_value jsResMgr) | 基于JavaScript resource manager获取native resource manager。 |
| [OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager) (napi_env env, napi_value jsResMgr) | 基于JavaScript resource manager获取native resource manager。通过此对象完成rawfile相关功能。 |
| [OH_ResourceManager_ReleaseNativeResourceManager](#oh_resourcemanager_releasenativeresourcemanager) ([NativeResourceManager](#nativeresourcemanager) \*resMgr) | 释放native resource manager。 |
| [OH_ResourceManager_OpenRawDir](#oh_resourcemanager_openrawdir) (const [NativeResourceManager](#nativeresourcemanager) \*mgr, const char \*dirName) | 打开rawfile目录。 |
| [OH_ResourceManager_OpenRawFile](#oh_resourcemanager_openrawfile) (const [NativeResourceManager](#nativeresourcemanager) \*mgr, const char \*fileName) | 打开rawfile文件。 |
......@@ -64,10 +61,10 @@
## 详细描述
## 类型定义说明
### 类型定义说明
### NativeResourceManager
#### NativeResourceManager
```
......@@ -78,14 +75,14 @@ typedef struct NativeResourceManager NativeResourceManager
代表resource manager。
此类封装了JavaScript resource manager的native实现 **ResourceManager**指针可以通过调用[OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager)方法获取
此类封装了JavaScript resource manager的native实现**ResourceManager**指针可以通过调用[OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager)方法获取。
**起始版本:**
8
### RawDir
#### RawDir
```
......@@ -101,7 +98,7 @@ typedef struct RawDir RawDir
8
### RawFile
#### RawFile
```
......@@ -110,17 +107,17 @@ typedef struct RawFile RawFile
**描述:**
提供对rawfile的访问功能。
提供对rawfile文件操作的相关功能。
**起始版本:**
8
## 函数说明
### 函数说明
### OH_ResourceManager_CloseRawDir()
#### OH_ResourceManager_CloseRawDir()
```
......@@ -146,7 +143,7 @@ void OH_ResourceManager_CloseRawDir (RawDir * rawDir)
8
### OH_ResourceManager_CloseRawFile()
#### OH_ResourceManager_CloseRawFile()
```
......@@ -172,7 +169,7 @@ void OH_ResourceManager_CloseRawFile (RawFile * rawFile)
8
### OH_ResourceManager_GetRawFileCount()
#### OH_ResourceManager_GetRawFileCount()
```
......@@ -200,7 +197,7 @@ int OH_ResourceManager_GetRawFileCount (RawDir * rawDir)
8
### OH_ResourceManager_GetRawFileDescriptor()
#### OH_ResourceManager_GetRawFileDescriptor()
```
......@@ -209,7 +206,7 @@ bool OH_ResourceManager_GetRawFileDescriptor (const RawFile * rawFile, RawFileDe
**描述:**
基于offset(单位为int32_t)和文件长度打开rawfile,并获取rawfile文件描述符。
基于offset和文件长度打开rawfile,并获取rawfile文件描述符。
打开的文件描述符被用于读取rawfile。
......@@ -229,7 +226,7 @@ bool OH_ResourceManager_GetRawFileDescriptor (const RawFile * rawFile, RawFileDe
8
### OH_ResourceManager_GetRawFileName()
#### OH_ResourceManager_GetRawFileName()
```
......@@ -262,7 +259,7 @@ const char* OH_ResourceManager_GetRawFileName (RawDir * rawDir, int index )
8
### OH_ResourceManager_GetRawFileOffset()
#### OH_ResourceManager_GetRawFileOffset()
```
......@@ -271,7 +268,7 @@ long OH_ResourceManager_GetRawFileOffset (const RawFile * rawFile)
**描述:**
获取rawfile当前的offset,单位为int32_t
获取rawfile当前的offset。
rawfile当前的offset。
......@@ -290,7 +287,7 @@ rawfile当前的offset。
8
### OH_ResourceManager_GetRawFileSize()
#### OH_ResourceManager_GetRawFileSize()
```
......@@ -299,7 +296,7 @@ long OH_ResourceManager_GetRawFileSize (RawFile * rawFile)
**描述:**
获取rawfile长度,单位为int32_t
获取rawfile文件大小
**参数:**
......@@ -309,14 +306,14 @@ long OH_ResourceManager_GetRawFileSize (RawFile * rawFile)
**返回:**
Returns rawfile整体长度
Returns rawfile整体文件大小
**起始版本:**
8
### OH_ResourceManager_InitNativeResourceManager()
#### OH_ResourceManager_InitNativeResourceManager()
```
......@@ -345,7 +342,7 @@ NativeResourceManager* OH_ResourceManager_InitNativeResourceManager (napi_env en
8
### OH_ResourceManager_OpenRawDir()
#### OH_ResourceManager_OpenRawDir()
```
......@@ -380,7 +377,7 @@ RawDir* OH_ResourceManager_OpenRawDir (const NativeResourceManager * mgr, const
8
### OH_ResourceManager_OpenRawFile()
#### OH_ResourceManager_OpenRawFile()
```
......@@ -415,7 +412,7 @@ RawFile* OH_ResourceManager_OpenRawFile (const NativeResourceManager * mgr, cons
8
### OH_ResourceManager_ReadRawFile()
#### OH_ResourceManager_ReadRawFile()
```
......@@ -445,7 +442,7 @@ int OH_ResourceManager_ReadRawFile (const RawFile * rawFile, void * buf, size_t
8
### OH_ResourceManager_ReleaseNativeResourceManager()
#### OH_ResourceManager_ReleaseNativeResourceManager()
```
......@@ -467,7 +464,7 @@ void OH_ResourceManager_ReleaseNativeResourceManager (NativeResourceManager * re
8
### OH_ResourceManager_ReleaseRawFileDescriptor()
#### OH_ResourceManager_ReleaseRawFileDescriptor()
```
......@@ -495,7 +492,7 @@ bool OH_ResourceManager_ReleaseRawFileDescriptor (const RawFileDescriptor & desc
8
### OH_ResourceManager_SeekRawFile()
#### OH_ResourceManager_SeekRawFile()
```
......
......@@ -2716,4 +2716,7 @@ async function AttestKeyTest() {
2. Property 'finishSession' does not exist on type 'typeof huks'. Did you mean 'finish'?
不能在huks库中找到finishSession,finishSession是API9版本的,请更新SDK版本或替换新版本的security.huks.d.ts文件。
\ No newline at end of file
不能在huks库中找到finishSession,finishSession是API9版本的,请更新SDK版本或替换新版本的security.huks.d.ts文件。
## 相关实例
[通用密钥库系统](https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Security/Huks): 本示例使用huks相关接口实现了对任意输入内容进行加密和解密的功能
\ No newline at end of file
......@@ -26,6 +26,7 @@ Image支持加载存档图、多媒体像素图两种类型。
存档图类型的数据源可以分为本地资源、网络资源、Resource资源、媒体库datashare资源和base64。
- 本地资源
创建文件夹,将本地图片放入ets文件夹下的任意位置。
Image组件引入本地图片路径,即可显示图片(根目录为ets文件夹)。
......@@ -36,6 +37,7 @@ Image支持加载存档图、多媒体像素图两种类型。
```
- 网络资源
引入网络图片需申请权限ohos.permission.INTERNET,具体申请方式请参考[权限申请声明](../security/accesstoken-guidelines.md)。此时,Image组件的src参数为网络图片的链接。
```ts
......@@ -43,6 +45,7 @@ Image支持加载存档图、多媒体像素图两种类型。
```
- Resource资源
使用资源格式可以跨包/跨模块引入图片,resources文件夹下的图片都可以通过$r资源接口读 取到并转换到Resource格式。
**图1** resouces  
......@@ -59,7 +62,7 @@ Image支持加载存档图、多媒体像素图两种类型。
**图2** rawfile  
![image-rawfile](figures/image-rawfile.jpg)
![image-rawfile](figures/image-rawfile.jpg)
调用方式:
......@@ -68,6 +71,7 @@ Image支持加载存档图、多媒体像素图两种类型。
```
- 媒体库datashare
支持datashare://路径前缀的字符串,用于访问通过媒体库提供的图片路径。
1. 调用接口获取图库的照片url。
......
......@@ -92,7 +92,7 @@
> 使用[registerJavaScriptProxy()](../reference/apis/js-apis-webview.md#registerjavascriptproxy)接口注册方法时,注册后需调用[refresh()](../reference/apis/js-apis-webview.md#refresh)接口生效。
- index.htm前端页面触发应用侧代码。
- index.html前端页面触发应用侧代码。
```html
<!-- index.html -->
......
......@@ -713,15 +713,16 @@
- [颜色渐变](reference/arkui-ts/ts-universal-attributes-gradient-color.md)
- [Popup控制](reference/arkui-ts/ts-universal-attributes-popup.md)
- [Menu控制](reference/arkui-ts/ts-universal-attributes-menu.md)
- [点击控制](reference/arkui-ts/ts-universal-attributes-click.md)
- [焦点控制](reference/arkui-ts/ts-universal-attributes-focus.md)
- [悬浮态效果](reference/arkui-ts/ts-universal-attributes-hover-effect.md)
- [组件标识](reference/arkui-ts/ts-universal-attributes-component-id.md)
- [触摸热区设置](reference/arkui-ts/ts-universal-attributes-touch-target.md)
- [多态样式](reference/arkui-ts/ts-universal-attributes-polymorphic-style.md)
- [触摸测试控制](reference/arkui-ts/ts-universal-attributes-hit-test-behavior.md)
- [分布式迁移标识](reference/arkui-ts/ts-universal-attributes-restoreId.md)
- [前景色设置](reference/arkui-ts/ts-universal-attributes-foreground-color.md)
- 触摸交互控制
- [点击控制](reference/arkui-ts/ts-universal-attributes-click.md)
- [触摸热区设置](reference/arkui-ts/ts-universal-attributes-touch-target.md)
- [触摸测试控制](reference/arkui-ts/ts-universal-attributes-hit-test-behavior.md)
- 模态转场设置
- [全屏模态转场](reference/arkui-ts/ts-universal-attributes-modal-transition.md)
- [半模态转场](reference/arkui-ts/ts-universal-attributes-sheet-transition.md)
......
......@@ -190,7 +190,7 @@ root {
【说明】HDF框架将一类设备驱动放在同一个Host里面,开发者也可以将Host中的驱动功能分层独立开发和部署,支持一个驱动多个Node,HDF驱动模型如下图所示:
![HDF驱动模型.png](../device-dev/driver/figures/HDF驱动模型.png)
![HDF驱动模型.png](figures/HDF驱动模型.png)
开发者应当将同一类的设备放在同一个Host里面,在新增设备时,检查是否已经存在同类型的Host。如果已存在Host,则将Device配置在此Host中,禁止重复配置Host。一个驱动设备应该只属于一类驱动类型,因此也禁止将同一个Device配置在不同Host当中。
......
# arkui子系统ChangeLog
## cl.arkui.1 状态变量数据类型声明使用限制。
所有的状态装饰器变量需要显式声明变量类型,不允许声明any。
**示例:**
```ts
// xxx.ets
@Entry
@Component
struct DatePickerExample {
// 错误写法: @State isLunar: any = false
@State isLunar: boolean = false
build() {
...
}
}
```
**变更影响**
如果状态装饰器变量没有显式声明变量类型,声明any,编译拦截等级由WARN变成ERROR。
```ts
// ArkTS:ERROR Please define an explicit type, not any.
@State isLunar: any = false
```
**关键的接口/组件变更**
不涉及。
**适配指导**
状态装饰器变量声明具体的变量类型替代any。
## cl.arkui.2 自定义组件成员变量初始化的规则与约束。
不允许从父组件初始化`@LocalStorageLink`, `@LocalStorageProp`修饰的变量。
**示例:**
```ts
let NextID: number = 0;
@Observed
class ClassA {
public id: number;
public c: number;
constructor(c: number) {
this.id = NextID++;
this.c = c;
}
}
@Entry
@Component
struct LocalStorageComponent {
build() {
Column() {
Child({
/* ArkTS:ERROR Property 'simpleVarName' in the custom component 'Child' cannot
initialize here (forbidden to specify). */
simpleVarName: 1,
/* ArkTS:ERROR Property 'objectName' in the custom component 'Child' cannot
initialize here (forbidden to specify). */
objectName: new ClassA(1)
})
}
}
}
@Component
struct Child {
@LocalStorageLink("storageSimpleProp") simpleVarName: number = 0;
@LocalStorageProp("storageObjectProp") objectName: ClassA = new ClassA(1);
build() {
}
}
```
**变更影响**
如果父组件初始化`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,编译拦截等级由WARN变成ERROR。
**关键的接口/组件变更**
不涉及。
**适配指导**
构造子组件时,不对子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量进行赋值。
如果需要在父组件中修改子组件的`@LocalStorageLink`, `@LocalStorageProp`修饰的变量,则使用LocalStorage提供的API接口方法(比如set方法)赋值。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册