成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

[FFH]Napi_generator(二)—NAPI框架生成工具實測

系統 OpenHarmony
在子系統下新建一個屬于自己的名為Mysubsys子系統,并在源碼下建立相應的Mysubsys目錄。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

在上一篇博客我們簡單介紹了napi框架生成工具的安裝和使用,本篇將利用該工具,實現簡單的北向應用調用南向提供的NAPI接口獲取數據的案例。

測試環境

  • OpenHarmony-3.2-Beta5
  • 九聯UnionPi-Tiger開發板
  • Visual Studio Code(版本需1.62.0及以上)
  • USB_Burning_Tool燒錄工具
  • napi_generator工具可執行文件或vs code插件
  • DevEco Studio 3.1.0.200

參考

子系統,部件,模塊的創建可以先看這一篇:??【FFH】子系統,部件,模塊編譯構建全實踐??napi_generator工具的介紹可以看這篇:[FFH]napi_generator(一)——NAPI框架生成工具介紹
NAPI框架生成工具使用說明——作者:深圳開鴻數字產業發展有限公司

實現流程

一、編譯構建實現

目錄結構:

mysubsys
├── napi_test
├── BUILD.gn
├── bundle.json
└── napi_generator_test
├── @ohos.napi_generator_test.d.ts

1、新增mysubsys子系統

在子系統下新建一個屬于自己的名為mysubsys子系統,并在源碼下建立相應的mysubsys目錄。

"mysubsys": {
"path": "mysubsys",
"name": "mysubsys"
}

2、新增napi_test部件

在mysubsys目錄下新建文件夾napi_test,并創建bundle.json部件配置文件。

{
"name": "@ohos/napi_test",
"description": "mysubsys test for bundle.json",
"version": "3.1",
"license": "MIT",
"publishAs": "code-segment",
"segment": {
"destPath": "mysubsys/napi_test"
},
"dirs": {},
"scripts": {},
"licensePath": "COPYING",
"component": {
"name": "napi_test",
"subsystem": "mysubsys",
"syscap": [],
"features": [],
"adapted_system_type": [],
"rom": "",
"ram": "",
"deps": {
"components": [],
"third_party": []
},
"build": {
"sub_component": [
"http://mysubsys/napi_test:my_napi_group"
],
"inner_kits": [],
"test": []
}
}
}

同時創建BUILD.gn作為部件入口:

import("http://build/ohos.gni")

group("my_napi_group") {
deps = [
"napi_generator_test:hello_napi_generator"
]
}

新建目錄napi_generator_test存放模塊文件。

mkdir napi_generator_test

3、產品配置中添加相應子系統及部件

在vendor/unionman/unionpi_tiger/config.json文件為musubsys添加部件,musubsys為之前自己添加的子系統,產品沒有mysubsys則根據模板進行創建。

#創作者激勵# [FFH]napi_generator(二)——NAPI框架生成工具實測-開源基礎軟件社區

二、NAPI接口開發

1、編寫接口定義ts文件

在napi_generator_test目錄下創建文件@ohos.napi_generator_test.d.ts,這里的hello_napi_generator要與BUILD.gn指定的動態庫名一致,該ts文件定義了get_Hello_Generator()接口,返回字符串類型數據,提供給北向應用調用。

declare namespace hello_napi_generator {
function get_Hello_Generator(): string;
}

export default hello_napi_generator;

2、使用工具生成模板

由上一部編寫的@ohos.napi_generator_test.d.ts生成NAPI框架代碼:

#創作者激勵# [FFH]napi_generator(二)——NAPI框架生成工具實測-開源基礎軟件社區

路徑選擇napi_generator_test下即可,配置如下:

#創作者激勵# [FFH]napi_generator(二)——NAPI框架生成工具實測-開源基礎軟件社區

模板生成成功后生成如下文件:

#創作者激勵# [FFH]napi_generator(二)——NAPI框架生成工具實測-開源基礎軟件社區

3、實現NAPI接口

修改文件hello_napi_generator.cpp,實現定義的接口,本案例中直接為接口輸出返回一個字符串。

#include "hello_napi_generator.h"

namespace hello_napi_generator {
bool get_Hello_Generator(std::string& out)
{
out = " HELLO NAPI GENERATOR! \r\n";
return true;
}
}

修改BUILD.gn編譯規則

這里指定依賴ace_napi根據所在路徑進行修改,子系統和部件需和你定義的一致。

import("http://build/ohos.gni")

ohos_shared_library("hello_napi_generator")
{
sources = [
"hello_napi_generator_middle.cpp",
"hello_napi_generator.cpp",
"tool_utility.cpp",
]
include_dirs = [
".",
"http://third_party/node/src",
]
deps=[
"http://foundation/arkui/napi:ace_napi", # 根據指定路徑修改
]
remove_configs = [ "http://build/config/compiler:no_rtti" ]
cflags=[
]
cflags_cc=[
"-frtti",
]
ldflags = [
]

relative_install_dir = "module"
part_name = "napi_test" # 修改為你的部件名
subsystem_name = "mysubsys" # 修改為你的子系統
}

三、NAPI接口應用開發

打開Deveco Studio,新建一個OpenHarmony工程。

配置選擇默認即可,使用ArkTS。

修改src/main/ets/pages/Index.ets文件,新建一個Button,Button調用NAPI接口hello_napi_generator.get_Hello_Generator()獲取南向接口返回的字符串,并通過彈窗組件輸出。

import prompt from '@system.prompt'
//顯示文本彈窗

// 引入擴展的NAPI模塊
// 定義nm_modname(模塊名稱)為hello_napi_generator
// 在BUILD.gn文件中定義ohos_shared_library結構體名稱為hello_napi_generator
// 所以是import hello_napi_generator from '@ohos.hello_napi_generator'
// @ts-ignore
import hello_napi_generator from '@ohos.hello_napi_generator';
@Entry
@Component
struct HelloNAPI {
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Button("MY NAPI GENERATOR TEST").margin(10).fontSize(24).onClick(() => {

// 對外具體的提供的API是get_Hello_Generator
let strFromNAPI = hello_napi_generator.get_Hello_Generator()

prompt.showToast({ message: strFromNAPI })
})
}
.width('100%')
.height('100%')
}
}

點擊File->Project Structure,進行自動簽名。

導入ts包或者忽略報錯。

根據教程要將@ohos.napi_generator_test.d.ts放到OpenHarmony SDK目錄ets\api目錄下,不過最新版的Deveco Studio使用API9放到指定路徑后還是找不到,個人北向接觸得比較少,不知道什么原因。不過雖然編譯會報錯,將報錯忽略后依然可以正常運行,也就是可以不用上述步驟也可以跑得通。

連接開發板,將應用安裝到開發板。

四、運行結果展示

#創作者激勵# [FFH]napi_generator(二)——NAPI框架生成工具實測-開源基礎軟件社區

后記

對于南向NAPI接口的實現,我只寫了一行代碼,也就是out = " HELLO NAPI GENERATOR! \r\n";,然后北向就可以調用到了,確實震撼到我了,對于需要和北向交互又苦于NAPI接口設計的繁瑣步驟的南向開發者來說,簡直是一款神器,后面有時間研究研究能不能使用Callback和Promise異步操作模型以及發掘一下其他功能。

文章相關附件可以點擊下面的原文鏈接前往下載:

 https://ost.51cto.com/resource/2573。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-03-10 09:41:16

NAPI框架鴻蒙

2024-01-03 15:41:49

2023-04-04 09:15:10

NAPI 框架鴻蒙

2022-10-11 15:04:28

NAPI開發鴻蒙

2022-07-19 20:04:31

NAPI模塊鴻蒙

2021-09-16 15:08:08

鴻蒙HarmonyOS應用

2023-06-12 08:00:48

Napi-rsRust 前端工具

2023-04-26 15:29:35

NAPI模塊鴻蒙

2021-12-08 15:07:51

鴻蒙HarmonyOS應用

2021-05-06 10:33:30

C++Napiv8

2022-10-25 15:05:17

NAPI開發鴻蒙

2021-12-06 06:19:03

鴻蒙HarmonyOS應用

2023-03-16 15:29:57

鴻蒙工具

2022-05-12 14:42:17

項目開發Napi實現

2023-03-22 09:23:53

I2C總線溫度傳感器

2022-10-09 15:05:50

NAPI框架鴻蒙

2021-06-06 08:30:29

N-APIPromiseAPI

2022-05-01 21:36:11

LinuxLinux Mint

2023-03-24 14:47:24

NAPI框架HDF框架

2022-03-03 08:30:41

GeneratorES6函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产高清一区二区三区 | 国产999精品久久久久久 | 欧美成人a∨高清免费观看 欧美日韩中 | 亚洲国产精品久久 | 亚洲欧美一区在线 | 精品久久久久久久久久久 | 超碰地址 | 国产视频在线观看一区二区三区 | 国产一区在线免费 | 超碰97人人人人人蜜桃 | 欧美一级黄色免费 | 91在线视频免费观看 | 亚洲成人精品在线 | 五月婷婷亚洲 | 国产一区二区三区网站 | 日韩一二区在线 | www.97国产| 玖玖在线精品 | 亚洲精品一区二区三区 | 国产精品久久久久久久久久久久 | 久久日韩精品一区二区三区 | 久久狼人天堂 | 91精品国产色综合久久 | 婷婷久久网 | 色婷婷久久久亚洲一区二区三区 | 五月香婷婷 | 国产色网| 成人a网| 中文字幕国产 | 最新中文字幕在线 | 人人射人人草 | 欧美一级欧美三级在线观看 | 成人国产精品入口免费视频 | 久久久这里只有17精品 | 久久精品无码一区二区三区 | 久久久高清| 色吧综合网 | 午夜精品 | 国产精品欧美一区二区三区不卡 | 国产亚洲精品精品国产亚洲综合 | 羞羞网站在线观看 |