diff --git a/app/src/main/assets/h5/css/app.css b/app/src/main/assets/h5/css/app.css
index 130b3fb..41ef4df 100644
--- a/app/src/main/assets/h5/css/app.css
+++ b/app/src/main/assets/h5/css/app.css
@@ -718,6 +718,23 @@ body.webapp-active [data-page="webapplist"] {
outline: none;
}
+/* 服务器地址确认按钮 */
+/* Server URL save button */
+.url-save {
+ flex: none;
+ padding: 6px 14px;
+ border: none;
+ border-radius: 8px;
+ background: var(--accent);
+ color: #fff;
+ font-size: 13px;
+ cursor: pointer;
+}
+
+.url-save:active {
+ opacity: 0.7;
+}
+
/* 右侧箭头:弱化色 */
/* Trailing arrow: dim color */
.st-item .arrow {
diff --git a/app/src/main/assets/h5/js/pages/settings.js b/app/src/main/assets/h5/js/pages/settings.js
index 89eaffb..6c23aae 100644
--- a/app/src/main/assets/h5/js/pages/settings.js
+++ b/app/src/main/assets/h5/js/pages/settings.js
@@ -191,17 +191,21 @@ function setupServerUrl(page) {
const startEdit = (current) => {
editing = true;
- item.innerHTML = '';
+ item.innerHTML = '' +
+ '';
const input = item.querySelector('#server-url-input');
+ const saveBtn = item.querySelector('#server-url-save');
input.focus();
const save = () => {
- bridge.call('setServerUrl', input.value.trim()).then(() => {
+ const v = input.value.trim();
+ if (!v) return;
+ bridge.call('setServerUrl', v).then(() => {
editing = false;
refresh();
}).catch(() => {});
};
+ saveBtn.onclick = save;
input.onkeydown = (e) => { if (e.key === 'Enter') save(); };
- input.onblur = () => { save(); };
};
const refresh = () => {