cj-tauri 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -40,18 +40,64 @@ npx cj-tauri dev # 构建 C 桥 + cjpm build + 启动窗口
40
40
  npx cj-tauri create myapp-vue --template vue # Vue 3 + Vite
41
41
  npx cj-tauri create myapp-react --template react # React 18 + Vite
42
42
 
43
+ npx cj-tauri create myohos --template ohos # 鸿蒙 PC(2in1)工程:ArkWeb 宿主 + build-hap.sh
44
+ npx cj-tauri create myohos --template ohos --bundle com.example.myapp --label "我的应用"
45
+
43
46
  npm i -g cj-tauri # 也可以全局安装,之后直接用 cj-tauri <子命令>
44
47
  ```
45
48
 
46
49
  | 子命令 | 作用 |
47
50
  |---|---|
48
- | `create <项目名> [--template app\|vue\|react]` | 生成工程(`src/` + `ui/` + `capabilities/` + `cjpm.toml`) |
49
- | `dev` | 构建 C 桥 + `cjpm build` + 启动应用;Vite 模板会接管 dev server(HMR) |
50
- | `build` | 构建 C 桥 + `cjpm build` |
51
- | `run` | 运行已构建产物 |
51
+ | `create <项目名> [--template app\|vue\|react\|ohos]` | 生成工程(桌面模板:`src/` + `ui/` + `capabilities/` + `cjpm.toml`;`ohos` 见下一节) |
52
+ | `dev` | 构建 C 桥 + `cjpm build` + 启动应用;Vite 模板会接管 dev server(HMR);鸿蒙工程转交 `build-hap.sh` |
53
+ | `build` | 构建 C 桥 + `cjpm build`;鸿蒙工程转交 `build-hap.sh` |
54
+ | `run` | 运行已构建产物;鸿蒙工程转交 `build-hap.sh --install`(构建 + 装机 + 启动) |
52
55
  | `info` | 环境自检(排障先跑它) |
53
56
  | `help` | 帮助 |
54
57
 
58
+ ## 鸿蒙 PC(`--template ohos`)
59
+
60
+ 同一套框架换个宿主:桌面用 WebView2 / WebKitGTK,鸿蒙 PC 用 **ArkWeb**,上层页面、命令层、能力校验不用改。
61
+
62
+ ```bash
63
+ npx cj-tauri create myohos --template ohos
64
+ cd myohos
65
+ bash build-hap.sh --install # 构建 hap + hdc 装机 + aa start;等价于 npx cj-tauri run
66
+ ```
67
+
68
+ 生成的是标准 DevEco 工程(`entry/` + `AppScope/` + `build-profile.json5` + `hvigorfile.ts`),
69
+ 鸿蒙相关的那层很薄:
70
+
71
+ | 路径 | 作用 |
72
+ |---|---|
73
+ | `entry/src/main/cangjie/main_ability.cj` | UIAbility:`ArkWebRuntime.configure(filesDir)` → 非 UI 线程 `spawn { run() }` → 等宿主登记再 `loadContent` |
74
+ | `entry/src/main/cangjie/index.cj` | `@Component` 的 ArkWeb 宿主 + 双向桥(**必须住应用模块**,框架包引用 ArkUI 会启动即崩) |
75
+ | `entry/src/main/resources/rawfile/` | `index.html`(页面真文件)与 `capabilities.json`(能力清单) |
76
+ | `build-hap.sh` | 唯一构建入口:探测 DevEco / stdx、`--no-daemon` 跑 hvigor、可选 `--install` |
77
+
78
+ 前置两件事:
79
+
80
+ - **DevEco Studio 6.1**(含仓颉插件)+ 已配好签名。`build-hap.sh` 用 `DEVECO_WIN` 找安装根
81
+ (默认 `D:\oh\DevEcoStudio`),用 `CANGJIE_STDX_OHOS` 找鸿蒙版 stdx 动态库;两者给不出时脚本会直接说清楚缺哪个。
82
+ - 真机开着**开发者模式 + USB 调试**,`hdc` 能列到设备;`aa start` 需要**屏幕已解锁**。
83
+
84
+ 工程默认是桌面形态:`module.json5` 的 `deviceTypes` 写 `2in1`,并在 `entry/build-profile.json5` 里
85
+ `cangjieOptions.checkDeviceTypes = false`(插件默认只放行 `phone` / `tablet`,写 `2in1` 会判 `01103012`);
86
+ 窗口**不干预尺寸**,沿用系统给的默认矩形(实测本机 `2090×1394`,约屏宽 2/3 且居中)。
87
+
88
+ 已知限制:签名要在 DevEco 里配(命令行不做自动签名,换 `bundleName` 需重新签);同一份调试签名下两个
89
+ 工程会互相顶掉安装位;单窗口、暂无原生对话框(那两条能力位如实返回 0);没有可用的 C 桥,
90
+ `launchHidden` / 串口 / 托盘这类宿主能力在鸿蒙上不提供。
91
+
92
+ 真机上怎么自证它通了(hilog,`CjTauri` tag):
93
+
94
+ ```
95
+ host registered after N polls label=main
96
+ host pageUrl label=main url="file:///.../files/cj-tauri-main.html"
97
+ page begin label=main
98
+ main window keeps system default 2090x1394 px at density 190% on screen 3120x2080
99
+ ```
100
+
55
101
  ## 这个包装层做了什么
56
102
 
57
103
  - **跨平台入口**:Windows / Linux / Git Bash 都是同一条 `cj-tauri` 命令,不再分 `.bat` 与 `.sh`;
package/cjpm.toml CHANGED
@@ -2,7 +2,7 @@
2
2
  cjc-version = "1.0.5"
3
3
  name = "cjTauri"
4
4
  description = "仓颉版 Tauri:轻量跨端混合开发框架(WebView 宿主 + IPC 桥 + 能力安全模型)"
5
- version = "1.1.0"
5
+ version = "1.1.2"
6
6
  target-dir = ""
7
7
  output-type = "static"
8
8
  compile-option = ""
package/cli/cjpm.toml CHANGED
@@ -2,7 +2,7 @@
2
2
  cjc-version = "1.0.5"
3
3
  name = "cli"
4
4
  description = "cj-tauri CLI:脚手架 create / dev / build / run / info"
5
- version = "1.1.0"
5
+ version = "1.1.2"
6
6
  target-dir = ""
7
7
  output-type = "executable"
8
8
  compile-option = ""
@@ -10,7 +10,7 @@ import std.collection.*
10
10
 
11
11
  /** CLI 版本:须与 cli/cjpm.toml 的 version、CHANGELOG 顶部版本一致(scripts/check-version.sh 校验) */
12
12
  func cliVersion(): String {
13
- return "1.1.0"
13
+ return "1.1.2"
14
14
  }
15
15
 
16
16
  /** 一次命令所需的路径上下文 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cj-tauri",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "仓颉语言的 Tauri:用仓颉写桌面应用后端 / 系统 WebView 写前端的混合开发框架脚手架 CLI(IPC 双向桥 + 能力安全模型,Windows / Linux / 鸿蒙 PC)",
5
5
  "keywords": [
6
6
  "cangjie",
Binary file
package/src/version.cj CHANGED
@@ -9,7 +9,7 @@ package cjTauri
9
9
  * - cli/src/project.cj 的 cliVersion()
10
10
  * - CHANGELOG.md 顶部第一个已发版段
11
11
  */
12
- public let CJ_TAURI_VERSION = "1.1.0"
12
+ public let CJ_TAURI_VERSION = "1.1.2"
13
13
 
14
14
  /**
15
15
  * IPC 报文协议版本(报文形状是跨层契约,加版本字段是协议治理惯例):事件 / 回执信封的 `protocol` 字段