libaki_jsbind:基于 HarmonyOS 与 Electron 的 ETS 调用集成方案项目

截止20251122基于arkcode组织的ohos_electron_hap编译的libaki_jsbind.so库

分支1Tags0
文件最后提交记录最后更新时间
8 个月前
8 个月前
8 个月前
8 个月前
8 个月前
8 个月前
8 个月前
8 个月前
8 个月前

HarmonyOS Electron 调用 ETS 集成项目

本项目提供了在 HarmonyOS 平台上使用 Electron 调用 ETS (eTS) 代码的完整解决方案。通过 JS 绑定技术,实现 Electron 应用与 HarmonyOS 原生代码的互操作。

项目概述

本项目包含了将 Electron 应用集成到 HarmonyOS 平台的完整工具链和示例代码,主要用于在鸿蒙设备上运行 Electron 应用并调用 ETS 编写的原生功能。

项目结构

├── aki/                    # AKI JS 绑定库源码
│   ├── src/               # 核心源码
│   ├── include/           # 头文件
│   ├── example/           # 示例代码
│   └── doc/               # 文档
├── adapter/               # 原生适配器代码
│   ├── CMakeLists.txt     # 编译配置
│   ├── demo.cc           # 示例实现
│   └── build/            # 编译输出目录
├── addon/                 # Electron Node.js 插件
│   ├── CMakeLists.txt     # 编译配置
│   ├── hello.cc          # 插件实现
│   ├── package.json      # Node.js 配置
│   └── build/            # 编译输出目录
├── libaki_jsbind.so      # 编译后的 AKI 库
├── libshim.a             # 静态库文件
└── HarmonyOS Electron调用ets指导文档.md  # 详细指导文档

编译产物

  • libaki_jsbind.so - AKI JS 绑定动态库
  • libshim.a - 静态库文件
  • electron-addon.node - Electron 插件 (在 addon/build/Release/ 目录下)

快速开始

环境准备

  1. 安装 Electron 34 编译工具链
  2. 配置 HarmonyOS SDK 环境
  3. 安装必要的构建工具 (CMake, Node.js, npm 等)

编译步骤

详细的编译步骤请参考 [HarmonyOS Electron调用ets指导文档.md](./HarmonyOS Electron调用ets指导文档.md)

主要步骤包括:

  1. 编译 AKI 库

    cd aki
    mkdir build && cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make
    
  2. 编译适配器

    cd adapter
    mkdir build && cd build
    cmake ..
    make
    
  3. 编译 Electron 插件

    cd addon
    npm install --verbose
    

HAP 包构建

参考指导文档第四部分,创建 HarmonyOS 应用工程并集成编译产物。

使用示例

JavaScript 调用示例

const addon = require('electron-addon.node');

// 调用原生方法
console.log('Hello from addon:', addon.hello());
console.log('Directory:', addon.getDir());

ETS 绑定示例

import { JsBindingTest } from 'library';

// 初始化绑定
JsBindingTest.init();
JsBindingTest.bind();

// 调用方法
const result = JsBindingTest.getUserDesktopDir();

重要说明

⚠️ 注意事项:

  • 所有路径配置需要根据实际环境修改
  • 请结合使用《Electron框架HarmonyOS开发指导》
  • 编译前请确保 Electron 工具链环境变量已正确配置
  • 证书问题可通过配置 ~/.npmrc 或设置 NODE_TLS_REJECT_UNAUTHORIZED=0 解决

文档参考

详细的开发指导请参考:

许可证

本项目遵循 Apache-2.0 许可证。

贡献

欢迎提交 Issue 和 Pull Request 来改进本项目。

项目介绍

截止20251122基于arkcode组织的ohos_electron_hap编译的libaki_jsbind.so库

定制我的领域