未验证 提交 037c2542 编写于 作者: Z zengyawen 提交者: Gitee

update zh-cn/application-dev/napi/napi-guidelines.md.

Signed-off-by: Nzengyawen <zengyawen1@huawei.com>
上级 b0cfb999
# Native API在应用工程中的使用指导
OpenHarmony的应用必须用js来桥接native。需要使用ace_napi仓中提供的napi接口来处理js交互。napi提供的接口名与三方Node.js一致,目前支持部分接口,符号表见仓下的该文件`libnapi.ndk.json`
OpenHarmony的应用必须用js来桥接native。需要使用[ace_napi](https://gitee.com/openharmony/arkui_napi/tree/master)仓中提供的napi接口来处理js交互。napi提供的接口名与三方Node.js一致,目前支持部分接口,符号表见仓下的该文件`libnapi.ndk.json`
## 开发流程
## 开发流程
IDE中会包含使用Native API的默认工程,使用`File`->`New`->`Create Project`创建`Native C++`模板工程。创建后在`main`目录下会包含`cpp`目录,可以使用ace_napi仓下提供的napi接口进行开发。
js侧通过`import`引入native侧包含处理js逻辑的so,如:`import hello from 'libhello.so'`,意为使用libhello.so的能力,native侧通过napi接口创建的js对象会给到应用js侧的`hello`对象。
## 开发建议
## 开发建议
### 1注册建议
### 1. 注册建议
* nm_register_func对应的函数需要加上static,防止与其他so里的符号冲突。
* 模块注册的入口,即使用\_\_attribute\_\_((constructor))修饰的函数的函数名需要确保不与其他模块重复。
### 2so命名规则
### 2. so命名规则
* 每个模块对应一个so
* 如模块名为`hello`,则so的名字为`libhello.so``napi_module``nm_modname`字段应为`hello`,大小写与模块名保持一致,应用使用时写作:`import hello from 'libhello.so'`
### 3js对象线程限制
### 3. js对象线程限制
ark引擎会对js对象线程使用进行保护,不正确使用会引起应用crash。
......@@ -46,7 +46,7 @@ napi_status napi_create_async_work(napi_env env,
## 示例一storage 模块——同步异步接口封装
## 示例一 storage 模块——同步异步接口封装
### 模块简介
......@@ -75,7 +75,7 @@ export default storage;
### 具体实现
完整代码参见仓下路径:`sample/native_module_storage/`
完整代码参见仓下路径:[OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master)仓库`sample/native_module_storage/`
#### 模块注册
......@@ -288,7 +288,7 @@ export default {
## 示例二NetServer 模块——native与js对象绑定
## 示例二 NetServer 模块——native与js对象绑定
### 模块简介
......@@ -308,7 +308,7 @@ export class NetServer {
### 具体实现
完整代码参见:`sample/native_module_netserver/`
完整代码参见:[OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master)仓库`sample/native_module_netserver/`
#### 模块注册
......@@ -487,7 +487,7 @@ export default {
## 示例三在非JS线程中回调JS接口
## 示例三 在非JS线程中回调JS接口
### 模块简介
......@@ -495,7 +495,7 @@ export default {
### 具体实现
完整代码参见:`sample/native_module_callback/`
完整代码参见:[OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master)仓库`sample/native_module_callback/`
#### 模块注册
......@@ -635,5 +635,4 @@ export default {
})
}
}
```
```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册