diff --git a/app_dashboard/changelog.md b/app_dashboard/changelog.md
index dad8cba..7595309 100644
--- a/app_dashboard/changelog.md
+++ b/app_dashboard/changelog.md
@@ -9,6 +9,17 @@ author:
2. $ {VERSION_CODE} (去掉空格),会自动替换实际修订号,比如 1.1.4.$ {VERSION_CODE}
-->
+### [1.0.2.${VERSION_CODE}] - 2025.10.10
+
+#### 文件下载
+
+* [dashboard_1.0.2.apk](dashboard_1.0.2.apk)
+
+#### 更新记录
+* 设置界面支持切换到不同类型的仪表盘地址,默认是自动跳转
+* 监听遥控器 F8 按键,打开设置界面
+* webView 禁止缩放,避免受到安卓字体和dpi缩放的影响
+
### [1.0.1.12] - 2025.9.16
#### 文件下载
diff --git a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/BuildingDashboardActivity.java b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/BuildingDashboardActivity.java
index 0c9834b..1100b57 100644
--- a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/BuildingDashboardActivity.java
+++ b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/BuildingDashboardActivity.java
@@ -11,6 +11,7 @@ import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
+import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebResourceError;
@@ -96,9 +97,14 @@ public class BuildingDashboardActivity extends FullscreenActivity {
SharedPreferences pre = PreferenceManager.getDefaultSharedPreferences(this);
String url = pre.getString("k_url", "http://172.18.22.211:8002/Dashboard");
- mainUrl = url + "/index.html";
+ String type = pre.getString("k_dashboard_type", "0");
configUrl = url + "/data/config.json";
+ if(!type.equals("0"))
+ mainUrl = url + "/dashboards/" + type + "/index.html";
+ else
+ mainUrl = url + "/index.html";
+
configLoadHandler.post(configLoadRunnable);
loadUrlWithRetry();
}
@@ -142,6 +148,24 @@ public class BuildingDashboardActivity extends FullscreenActivity {
}
}
+ /**
+ * 监听按键,因为 WebView 可能会拦截功能键,这里不使用 onKeyDown
+ * @param event
+ * @return
+ */
+ @Override
+ public boolean dispatchKeyEvent(KeyEvent event) {
+ Log.d(TAG, "dispatchKeyEvent:" + event.getKeyCode());
+
+ if ( event.getKeyCode() == KeyEvent.KEYCODE_F8
+ && event.getAction() == KeyEvent.ACTION_DOWN) {
+ openSettingsActivity();
+ return true; // 不再向下分发
+ }
+
+ return super.dispatchKeyEvent(event);
+ }
+
private void initListener() {
binding.settingsButton.setOnClickListener(view -> openSettingsActivity());
}
@@ -158,6 +182,13 @@ public class BuildingDashboardActivity extends FullscreenActivity {
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setJavaScriptEnabled(true);
+ // 禁用缩放相关设置
+ webSettings.setTextZoom(100);
+ webSettings.setSupportZoom(false); // 禁止缩放
+ webSettings.setBuiltInZoomControls(false);
+
+ binding.webview.setInitialScale(100);
+
binding.webview.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, WebResourceRequest request,
diff --git a/app_dashboard/src/main/res/values/arrays.xml b/app_dashboard/src/main/res/values/arrays.xml
index 6cf9ed4..5a508f4 100644
--- a/app_dashboard/src/main/res/values/arrays.xml
+++ b/app_dashboard/src/main/res/values/arrays.xml
@@ -9,4 +9,16 @@
- reply
- reply_all
+
+
+ - 0 (根据服务器配置跳转)
+ - 1 (按楼层)
+ - 2 (网格+统计)
+
+
+
+ - 0
+ - 1
+ - 2
+
\ No newline at end of file
diff --git a/app_dashboard/src/main/res/values/strings.xml b/app_dashboard/src/main/res/values/strings.xml
index e51bbbb..70a263b 100644
--- a/app_dashboard/src/main/res/values/strings.xml
+++ b/app_dashboard/src/main/res/values/strings.xml
@@ -19,4 +19,5 @@
Automatically download attachments for incoming emails
Only download attachments when manually requested
+ 0
\ No newline at end of file
diff --git a/app_dashboard/src/main/res/xml/root_preferences.xml b/app_dashboard/src/main/res/xml/root_preferences.xml
index bdbad9b..295fa1e 100644
--- a/app_dashboard/src/main/res/xml/root_preferences.xml
+++ b/app_dashboard/src/main/res/xml/root_preferences.xml
@@ -5,5 +5,12 @@
app:title="URL 前缀"
app:defaultValue="http://172.18.22.211:8002/Dashboard"
app:useSimpleSummaryProvider="true" />
+
\ No newline at end of file
diff --git a/readme.md b/readme.md
index e00d719..4a6f96a 100644
--- a/readme.md
+++ b/readme.md
@@ -2,9 +2,9 @@
## 1. 简介
-本项目是一个为 Android 设备设计的专用仪表盘(Dashboard)客户端。
+本项目是一个运行在 Android 设备上的仪表盘(Dashboard)客户端。
-其主要功能是作为一个**数字标牌或控制面板**的展示端:它通过全屏 `WebView` 加载并展示一个远程的网页仪表盘,同时接收远程指令,在预定的时间通过串口与外部硬件设备进行通信。
+其主要功能是作为一个**仪表盘(Dashboard)**的展示端:它通过全屏 `WebView` 加载并展示一个远程的网页仪表盘,并根据服务器数据的配置,在预定的时间通过串口与外部硬件设备进行通信。
## 2. 主要功能
@@ -59,12 +59,12 @@
这是一个标准的 Android Gradle 项目。使用 Android Studio 打开即可,或在命令行中执行以下命令构建:
```bash
-# 构建 Debug 版本的 APK
-./gradlew assembleDebug
+# 构建 Release 版本的 APK
+./gradlew clean assembleRelease
```
## 6. TODO
* [ ] 恢复并优化图片轮播功能,支持本地与网络图片。
* [ ] 提供更丰富的远程配置选项(如轮播间隔、动画效果等)。
-* [ ] 增加 Web 与客户端通过 JavascriptInterface 的双向交互。
+* [ ] 增加 Web 与客户端通过 Javascript Interface 的双向交互。