Compare commits
No files matched your search
@@ -31,7 +31,7 @@ jobs:
|
|||||||
- name: Set up .NET
|
- name: Set up .NET
|
||||||
uses: https://github.com/actions/setup-dotnet@v4
|
uses: https://github.com/actions/setup-dotnet@v4
|
||||||
with:
|
with:
|
||||||
dotnet-version: "10.0.302"
|
dotnet-version: "10.0.400"
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: https://github.com/actions/setup-node@v4
|
uses: https://github.com/actions/setup-node@v4
|
||||||
@@ -46,6 +46,11 @@ jobs:
|
|||||||
npm ci
|
npm ci
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
- name: Install Chinese PDF font for backend tests
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install --yes fonts-noto-cjk
|
||||||
|
|
||||||
- name: Run backend tests
|
- name: Run backend tests
|
||||||
run: dotnet test Jiaowu.slnx --configuration Release
|
run: dotnet test Jiaowu.slnx --configuration Release
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,14 @@ npm run cap:open:android
|
|||||||
并记录签到设备摘要、IP、失败次数和异常频率,供任课教师在考勤明细中复核。Android
|
并记录签到设备摘要、IP、失败次数和异常频率,供任课教师在考勤明细中复核。Android
|
||||||
最低版本为 API 26;相机和精确位置权限均按需申请。
|
最低版本为 API 26;相机和精确位置权限均按需申请。
|
||||||
|
|
||||||
|
### Web/PWA 应用
|
||||||
|
|
||||||
|
浏览器通过 HTTPS 打开系统后,可使用浏览器的“安装应用”功能将明序教务固定到桌面或
|
||||||
|
开始菜单。PWA 会缓存应用界面与静态资源;接口请求始终走网络,不会离线缓存登录态、
|
||||||
|
成绩或其他业务数据。发现新版本时由用户确认刷新,避免正在填写表单时被强制中断。
|
||||||
|
Capacitor Android 构建会自动禁用 PWA Service Worker,仍使用原生能力和独立的 OTA
|
||||||
|
更新流程。
|
||||||
|
|
||||||
### App 前端热更新
|
### App 前端热更新
|
||||||
|
|
||||||
App 内置自建 OTA 更新器。它只更新 `dist` 中的 HTML、JavaScript、CSS 和静态资源;
|
App 内置自建 OTA 更新器。它只更新 `dist` 中的 HTML、JavaScript、CSS 和静态资源;
|
||||||
@@ -79,16 +87,18 @@ App 内置自建 OTA 更新器。它只更新 `dist` 中的 HTML、JavaScript、
|
|||||||
```powershell
|
```powershell
|
||||||
Set-Location web
|
Set-Location web
|
||||||
npm ci
|
npm ci
|
||||||
npm run ota:package -- --version 1.0.1
|
npm run ota:package
|
||||||
```
|
```
|
||||||
|
|
||||||
ZIP 会生成到 `.artifacts/app-updates`,根目录直接包含 `index.html`。使用
|
ZIP 会生成到 `.artifacts/app-updates`,根目录直接包含 `index.html`,其版本固定取自
|
||||||
|
`versions.props` 的 `JiaowuFrontendVersion`(传入 `--version` 时也必须一致)。使用
|
||||||
SuperAdmin 进入“运维与审计 → App 前端热更新”,上传 ZIP,填写目标平台、通道和
|
SuperAdmin 进入“运维与审计 → App 前端热更新”,上传 ZIP,填写目标平台、通道和
|
||||||
兼容的原生版本后先保存为草稿,再执行发布。当前 Android 工程的 `versionName` 为
|
兼容的原生版本后先保存为草稿,再执行发布。当前 Android 工程的 `versionName` 为
|
||||||
`1.0`,因此对应更新包的“兼容原生版本”应填写 `1.0`。
|
`1.0`,因此对应更新包的“兼容原生版本”应填写 `1.0`。
|
||||||
|
|
||||||
App 启动后向 `/api/app-updates/latest` 检查版本,在后台下载并校验服务端提供的
|
App 启动、以及从后台回到前台超过 5 分钟后,会向 `/api/app-updates/latest` 检查版本,
|
||||||
SHA-256,下次启动时切换。新资源若未能成功启动,原生更新器会自动回滚。再次发布
|
在后台下载并校验服务端提供的 SHA-256;切到后台或下次启动时切换,并保留当前页面地址。
|
||||||
|
新资源若未能成功启动,原生更新器会自动回滚。再次发布
|
||||||
已归档版本即可回滚正式通道;不同原生版本、Android/iOS、测试/正式通道彼此隔离。
|
已归档版本即可回滚正式通道;不同原生版本、Android/iOS、测试/正式通道彼此隔离。
|
||||||
更新版本元数据和 ZIP 保存在数据库中,部署新服务端版本前必须先执行
|
更新版本元数据和 ZIP 保存在数据库中,部署新服务端版本前必须先执行
|
||||||
`--migrate-only`。
|
`--migrate-only`。
|
||||||
@@ -184,6 +194,14 @@ Sso__CallbackUrl=https://jiaowu.example.edu.cn/signin-keycloak
|
|||||||
显示当前生效的完整回调地址。多实例部署应配置 Redis,以便任意实例都能兑换两分钟内
|
显示当前生效的完整回调地址。多实例部署应配置 Redis,以便任意实例都能兑换两分钟内
|
||||||
有效、使用后即删除的 SSO 登录码及五分钟内有效的绑定意图。
|
有效、使用后即删除的 SSO 登录码及五分钟内有效的绑定意图。
|
||||||
|
|
||||||
|
Android App 使用系统浏览器完成 Keycloak 登录,再通过 `https://eis.biss.click/sso/callback`
|
||||||
|
或 `/sso/bind` 的 Android App Link 回到应用;Keycloak 的 Valid redirect URI 仍然只配置
|
||||||
|
`Sso__CallbackUrl`(即 `/signin-keycloak`),不要配置 `mingxu://`。正式发布前,将 Play
|
||||||
|
App Signing 证书的 SHA-256 指纹写入 `web/public/.well-known/assetlinks.json`,并确保该文件
|
||||||
|
以 `application/json` 在 `https://eis.biss.click/.well-known/assetlinks.json` 可匿名访问。当前
|
||||||
|
配置的包名为 `edu.mingxu.jiaowu`;站点域名或正式签名证书变更时必须同时更新此文件和 Android
|
||||||
|
Manifest 后重新签名发布 APK/AAB,此类变更不能通过 OTA 下发。
|
||||||
|
|
||||||
用户登录后可从页面右上角进入“个人账户”,主动绑定或解除 Keycloak 账号。主动绑定先
|
用户登录后可从页面右上角进入“个人账户”,主动绑定或解除 Keycloak 账号。主动绑定先
|
||||||
使用当前 JWT 创建五分钟有效的一次性绑定意图,再跳转 Keycloak;回调只能绑定到发起该
|
使用当前 JWT 创建五分钟有效的一次性绑定意图,再跳转 Keycloak;回调只能绑定到发起该
|
||||||
意图的本地账号。解绑需要再次验证本地密码,避免仅凭未锁屏的登录会话解除身份关联。
|
意图的本地账号。解绑需要再次验证本地密码,避免仅凭未锁屏的登录会话解除身份关联。
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"sdk": {
|
"sdk": {
|
||||||
"version": "10.0.302",
|
"version": "10.0.400",
|
||||||
"rollForward": "latestPatch"
|
"rollForward": "latestPatch"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loaded 3 of 106 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user