From 4551fe1f5a4e9d905a514bf7ebcd3536ac9050b6 Mon Sep 17 00:00:00 2001 From: Zhanghu Date: Fri, 10 Oct 2025 15:42:24 +0800 Subject: [PATCH] =?UTF-8?q?*=20=E8=AE=BE=E7=BD=AE=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=88=87=E6=8D=A2=E5=88=B0=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E4=BB=AA=E8=A1=A8=E7=9B=98=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=EF=BC=8C=E9=BB=98=E8=AE=A4=E6=98=AF=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=20*=20=E7=9B=91=E5=90=AC=E9=81=A5=E6=8E=A7?= =?UTF-8?q?=E5=99=A8=20F8=20=E6=8C=89=E9=94=AE=EF=BC=8C=E6=89=93=E5=BC=80?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=95=8C=E9=9D=A2=20*=20webView=20=E7=A6=81?= =?UTF-8?q?=E6=AD=A2=E7=BC=A9=E6=94=BE=EF=BC=8C=E9=81=BF=E5=85=8D=E5=8F=97?= =?UTF-8?q?=E5=88=B0=E5=AE=89=E5=8D=93=E5=AD=97=E4=BD=93=E5=92=8Cdpi?= =?UTF-8?q?=E7=BC=A9=E6=94=BE=E7=9A=84=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_dashboard/changelog.md | 11 +++++++ .../activity/BuildingDashboardActivity.java | 33 ++++++++++++++++++- app_dashboard/src/main/res/values/arrays.xml | 12 +++++++ app_dashboard/src/main/res/values/strings.xml | 1 + .../src/main/res/xml/root_preferences.xml | 7 ++++ readme.md | 10 +++--- 6 files changed, 68 insertions(+), 6 deletions(-) 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 的双向交互。