当前位置: 首页 > news >正文

HarmonyOS5 仓颉入门:和 ArkTs 互操作

现在一般的场景是在已有 ArkTs 库中使用仓颉,所以可以将仓颉代码封装为 ArkTs 库,提供给外部使用。

原理就是互操作宏解析被注解修饰的仓颉代码,会自动生成 ArkTs 声明文件和互操作层代码。

使用步骤:

1.在 cj 文件中,针对 class、interface 和函数,使用 @Interop[ArkTS] 进行修饰,被修饰的对象是希望被 ArkTS 调用的。

2.在 DevEco Studio 中的仓颉文件或者 module 名称右键选择“Generate Cangjie-ArkTS Interop API”,会在 cangjie 目录下生成 ark_interop_api 的声明文件。

3.ArkTS 侧添加依赖并 import ark_interop_api 即可使用。

仓颉代码:

import ohos.ark_interop.*
import ohos.ark_interop_macro.*@Interop[ArkTS]
public func sub(a: Int64, b: Int64): Int64 {return a - b
}@Interop[ArkTS]
public class CjDemo {public let name: String@Interop[ArkTS, Invisible]public var id: Float64 = 1.0public init(str: String) {name = str}public func add(a: Int64, b: Int64): Int64 {return a + b}public func foo(): Float64 {return 1.0}
}

生成的代码:

export declare class CjDemo {name: stringadd(a: number, b: number): numberfoo(): number
}export declare interface CustomLib {sub(a: number, b: number): numberCjDemo: {new (str: string): CjDemo}
}

使用:

let cjLib : CustomLib = requireCJLib("libohos_app_cangjie_entry.so") as CustomLib
console.log("result" + cjLib.sub(2, 1))let class1: CjDemo = new cjLib.CjDemo("arkts call")
console.log("result " + class1.add(5,1))
http://www.xdnf.cn/news/769087.html

相关文章:

  • 天机学堂(初始项目)
  • 2024年第十五届蓝桥杯Scratch10月stema选拔赛真题——数字卡片排序
  • 解锁设计师创意魔法:Onlook赋能你的Web创作
  • DAY 40 超大力王爱学Python
  • 20250602在荣品的PRO-RK3566开发板的Android13下打开HDMI显示
  • 深入解析 Python 字符串方法:从基础到高级应用
  • 打开一个新的Maven工程要做的事情
  • (12)-java+ selenium->元素定位大法之By_link_text
  • 吴恩达MCP课程(5):mcp_chatbot_prompt_resource.py
  • InlineHook的原理与做法
  • 每天掌握一个Linux命令 - hping3
  • deepseek问答记录:请讲解一下transformers.HfArgumentParser()
  • Linux指令:
  • 每日八股文6.2
  • 网络安全的学习路线是怎么样的?
  • 【数据库】关系数据库标准语言-SQL(金仓)下
  • 快手可灵视频V1.6模型API如何接入免费AI开源项目工具
  • Java中Random类常用方法详解
  • 数据结构哈希表总结
  • 【看到哪里写到哪里】在C里面怎么传递二维数组呢?
  • TC3xx学习笔记-启动过程详解(一)
  • COUNT(*) 与 COUNT(列名) 的区别解析
  • MySQL中SELECT查询的执行顺序
  • 【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解
  • SCAU8643--简单选择排序
  • 2506js,活扩控件
  • 基于ubuntu和树莓派环境对游戏进行移植
  • cJSON简单使用
  • uniapp路由跳转toolbar页面
  • 为何ERP系统更倾向使用业务编码作为主键?兼顾可读性与系统集成的设计思考