* 设置界面支持切换到不同类型的仪表盘地址,默认是自动跳转
* 监听遥控器 F8 按键,打开设置界面 * webView 禁止缩放,避免受到安卓字体和dpi缩放的影响
This commit is contained in:
@@ -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
|
||||
|
||||
#### 文件下载
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -9,4 +9,16 @@
|
||||
<item>reply</item>
|
||||
<item>reply_all</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="dashboard_type_entries">
|
||||
<item>0 (根据服务器配置跳转)</item>
|
||||
<item>1 (按楼层)</item>
|
||||
<item>2 (网格+统计)</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="dashboard_type_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
@@ -19,4 +19,5 @@
|
||||
<string name="attachment_summary_on">Automatically download attachments for incoming emails
|
||||
</string>
|
||||
<string name="attachment_summary_off">Only download attachments when manually requested</string>
|
||||
<string name="dashboard_type_default_value">0</string>
|
||||
</resources>
|
||||
@@ -5,5 +5,12 @@
|
||||
app:title="URL 前缀"
|
||||
app:defaultValue="http://172.18.22.211:8002/Dashboard"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<ListPreference
|
||||
app:title="仪表盘类型"
|
||||
app:key="k_dashboard_type"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:entries="@array/dashboard_type_entries"
|
||||
app:entryValues="@array/dashboard_type_values"
|
||||
app:defaultValue="@string/dashboard_type_default_value" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
10
readme.md
10
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 的双向交互。
|
||||
|
||||
Reference in New Issue
Block a user