diff --git a/src/apis.js b/src/apis.js
index 305a040..5ddb095 100644
--- a/src/apis.js
+++ b/src/apis.js
@@ -23,6 +23,7 @@ try {
console.error("获取环境信息失败,使用默认正式环境", e);
}
+// 统一处理业务接口请求,包含登录态、业务错误和 WiFi 连接空响应兼容。
function request(method, url, data = {}) {
const token = uni.getStorageSync(
`${uni.getAccountInfoSync().miniProgram.envVersion}_token`
@@ -37,6 +38,10 @@ function request(method, url, data = {}) {
data,
timeout: 10000,
success: (res) => {
+ if (url === "/user/hardwareBox/connectWifi" && res.statusCode === 200 && res.data && Object.keys(res.data).length === 0) {
+ resolve({});
+ return;
+ }
if (res.data) {
const {code, data, message} = res.data;
if (code === 0) resolve(data);
@@ -84,6 +89,10 @@ function request(method, url, data = {}) {
icon: "none",
});
}
+ if (url === "/user/hardwareBox/connectWifi") {
+ reject({code, message});
+ return;
+ }
uni.showToast({
title: message,
icon: "none",
@@ -448,6 +457,26 @@ export const getDeviceBatteryAPI = async () => {
return request("GET", "/user/device/battery");
};
+// 设备连接指定 WiFi,只下发 WiFi 凭证,不触发 OTA 升级。
+export const connectDeviceWifiAPI = async (ssid, password) => {
+ return request("POST", "/user/hardwareBox/connectWifi", {ssid, password});
+};
+
+// 获取硬件盒子版本信息,用于判断当前设备是否需要 OTA 升级。
+export const getHardwareBoxVersionAPI = async () => {
+ return request("GET", "/user/hardwareBox/version");
+};
+
+// 发送硬件盒子 OTA 更新指令,服务端会返回后续轮询使用的任务 ID。
+export const sendHardwareBoxUpdateAPI = async (data) => {
+ return request("POST", "/user/hardwareBox/sendUpdate", data);
+};
+
+// 根据任务 ID 获取硬件盒子 OTA 更新状态。
+export const getHardwareBoxTaskStatusAPI = async (taskId) => {
+ return request("GET", `/user/hardwareBox/taskStatus?taskId=${taskId}`);
+};
+
export const addNoteAPI = async (id, remark) => {
return request("POST", "/user/score/sheet/remark", {id, remark});
};
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 4c848bd..c814f87 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -1,5 +1,5 @@
@@ -524,6 +776,7 @@ onUnmounted(() => {
/>
+ {{ connectStatusText }}
{{ connectError }}
@@ -538,7 +791,8 @@ onUnmounted(() => {
- 该网络为开放网络,点击 ✓ 加入
+ {{ connectStatusText }}
+ 该网络为开放网络,点击 ✓ 加入
{{ connectError }}
@@ -588,6 +842,7 @@ onUnmounted(() => {
{{ ssidWarning }}
+ {{ connectStatusText }}
{{ connectError }}
@@ -927,6 +1182,14 @@ onUnmounted(() => {
text-align: center;
margin-bottom: 24rpx;
}
+.connect-status {
+ color: rgba(255, 255, 255, 0.72);
+ font-size: 26rpx;
+ line-height: 40rpx;
+ margin-top: 16rpx;
+ display: block;
+ text-align: center;
+}
.connect-error {
color: rgba(254, 216, 71, 1);
font-size: 26rpx;