深圳市工程建设造价网站免费发布信息网平台

张小明 2026/1/3 11:57:23
深圳市工程建设造价网站,免费发布信息网平台,网站设计开发软件有哪些,最新国际新闻稿欢迎大家加入开源鸿蒙跨平台开发者社区#xff0c;一起共建开源鸿蒙跨平台生态。 #x1f4cc; 概述 基本设置模块为用户提供了配置应用全局行为的入口#xff0c;包括应用语言、货币单位、默认排序方式、首页展示内容等。模块同时打通了 Web 层配置面板与 OpenHarmony 原生…欢迎大家加入开源鸿蒙跨平台开发者社区一起共建开源鸿蒙跨平台生态。 概述基本设置模块为用户提供了配置应用全局行为的入口包括应用语言、货币单位、默认排序方式、首页展示内容等。模块同时打通了 Web 层配置面板与 OpenHarmony 原生偏好存储实现“前端 UI 修改 → 原生持久化 → 全局生效”的完整链路。所有设置项都被集中保存在settings表和原生Preferences应用启动时会统一加载并应用保证行为一致。通过合理的分组与默认值设计用户既可以开箱即用也能根据自己的喝茶习惯和地区偏好进行深入定制。 完整流程第一步加载与合并配置当用户打开“基本设置”页面时前端会先从 IndexedDB 的settings表加载已有配置如果是首次启动则返回空集合。随后通过 Cordova 调用SettingsBridge原生插件从 OpenHarmony 的Preferences中读取系统级设置例如是否允许使用系统深色模式、是否允许原生通知等将两部分配置进行合并得到一份“当前生效配置”。这一过程同时会填充表单默认值例如语言下拉框选中“简体中文”、货币单位选中“CNY”、默认排序方式选中“按时间倒序”等让用户一眼看到当前真实状态。第二步用户修改与即时预览设置页上的每一个表单控件都绑定了本地状态当用户修改语言、货币、默认页面或是否启用提示音等选项时会立刻更新内存中的配置对象。部分设置如默认排序方式、是否显示统计卡片会直接在当前 Web 页面中即时生效用于提供预览效果而另一些需要重启或重新渲染的设置如语言切换则会给出“重启后生效”的提示。为了避免频繁写入数据库前端会在“应用设置”按钮点击时集中提交一次将所有变更打包发送给本地 IndexedDB 和原生插件。第三步持久化与全局应用当用户点击“保存设置”时前端会调用db.saveSettings(settings)将配置保存到 IndexedDB 中并通过cordova.exec调用SettingsBridge.saveNativeSettings()在原生侧写入Preferences。随后主应用在下次启动或主动刷新配置时会统一从本地数据库和 Preferences 加载这些设置并应用到导航、统计模块、主题模块等多个子系统中确保全局行为与用户选择保持一致。对于影响原生行为的选项如是否允许震动提醒原生插件会在注册通知或振动前读取对应配置做到真正“按设置行事”。 Web 代码实现基本设置页面 HTML 结构dividbasic-settings-pageclasspagedivclasspage-headerh1基本设置/h1/divformidsettings-formclassformdivclassform-grouplabelforsetting-language界面语言/labelselectidsetting-languagenamelanguageoptionvaluezh-CN简体中文/optionoptionvalueen-USEnglish/option/select/divdivclassform-grouplabelforsetting-currency货币单位/labelselectidsetting-currencynamecurrencyoptionvalueCNY人民币 (CNY)/optionoptionvalueUSD美元 (USD)/optionoptionvalueEUR欧元 (EUR)/option/select/divdivclassform-grouplabelforsetting-default-page默认首页/labelselectidsetting-default-pagenamedefaultPageoptionvaluedashboard仪表板/optionoptionvaluerecord-list记录列表/optionoptionvaluetrend-analysis趋势分析/option/select/divdivclassform-grouplabel启动时加载统计卡片/labellabelclassswitchinputtypecheckboxidsetting-load-statsnameloadStatsspanclassslider/span/label/divdivclassform-grouplabel启用震动反馈/labellabelclassswitchinputtypecheckboxidsetting-hapticsnamehapticsspanclassslider/span/labelsmallclassform-text需要系统支持原生层将根据此开关决定是否调用震动服务。/small/divdivclassform-actionsbuttontypebuttonclassbtn btn-secondaryonclickresetSettingsForm()恢复默认/buttonbuttontypesubmitclassbtn btn-primary保存设置/button/div/form/div这段 HTML 定义了“基本设置”页面的主要表单项包括语言、货币、默认首页、是否加载统计卡片以及是否启用震动反馈等。使用select和自定义switch组件的组合可以保持页面风格统一同时保证键盘和可访问性友好。settings-form表单稍后会在 JavaScript 中绑定submit事件以集中处理保存逻辑而“恢复默认”按钮则用于一键回退到系统推荐设置。设置加载、编辑与保存逻辑letcurrentSettings{language:zh-CN,currency:CNY,defaultPage:dashboard,loadStats:true,haptics:true};asyncfunctioninitBasicSettingsPage(){try{constsavedawaitdb.getSettings();if(saved){currentSettings{...currentSettings,...saved};}if(window.cordova){cordova.exec(native{currentSettings{...currentSettings,...native};fillSettingsForm();},()fillSettingsForm(),SettingsBridge,loadNativeSettings,[]);}else{fillSettingsForm();}document.getElementById(settings-form).addEventListener(submit,handleSettingsSubmit);}catch(error){console.error(Failed to init settings page:,error);showToast(加载设置失败,error);fillSettingsForm();}}functionfillSettingsForm(){document.getElementById(setting-language).valuecurrentSettings.language;document.getElementById(setting-currency).valuecurrentSettings.currency;document.getElementById(setting-default-page).valuecurrentSettings.defaultPage;document.getElementById(setting-load-stats).checked!!currentSettings.loadStats;document.getElementById(setting-haptics).checked!!currentSettings.haptics;}asyncfunctionhandleSettingsSubmit(event){event.preventDefault();constformdocument.getElementById(settings-form);constformDatanewFormData(form);constnewSettings{language:formData.get(language)||zh-CN,currency:formData.get(currency)||CNY,defaultPage:formData.get(defaultPage)||dashboard,loadStats:formData.get(loadStats)on,haptics:formData.get(haptics)on};try{awaitdb.saveSettings(newSettings);currentSettingsnewSettings;if(window.cordova){cordova.exec(()console.log(Native settings saved),errconsole.error(Save native settings error:,err),SettingsBridge,saveNativeSettings,[newSettings]);}showToast(设置已保存,success);}catch(error){console.error(Failed to save settings:,error);showToast(保存失败请重试,error);}}functionresetSettingsForm(){currentSettings{language:zh-CN,currency:CNY,defaultPage:dashboard,loadStats:true,haptics:true};fillSettingsForm();showToast(已恢复默认设置仅在保存后生效,info);}上面这段 JavaScript 代码实现了基本设置的整个前端流程initBasicSettingsPage()先从 IndexedDB 读取已有配置再尝试从原生层加载补充设置然后调用fillSettingsForm()将合并后的配置填入表单。handleSettingsSubmit()在表单提交时收集用户输入、写回settings表并通过SettingsBridge.saveNativeSettings同步到 ArkTS 原生层。resetSettingsForm()则简单重置为一组约定好的默认值并提示用户需要点击“保存设置”后才会真正持久化。 OpenHarmony 原生代码ArkTSSettingsBridgePreferences 持久化与读取// entry/src/main/ets/plugins/SettingsBridge.etsimportpreferencesfromohos.data.preferences;constPREF_NAMEtea_app_settings;exportclassSettingsBridge{staticasyncloadNativeSettings():PromiseRecordstring,unknown{constprefawaitpreferences.getPreferences(globalThis.context,PREF_NAME);constlanguageawaitpref.get(language,zh-CN)asstring;constcurrencyawaitpref.get(currency,CNY)asstring;constdefaultPageawaitpref.get(defaultPage,dashboard)asstring;constloadStatsawaitpref.get(loadStats,true)asboolean;consthapticsawaitpref.get(haptics,true)asboolean;return{language,currency,defaultPage,loadStats,haptics};}staticasyncsaveNativeSettings(settings:Recordstring,unknown):Promisevoid{constprefawaitpreferences.getPreferences(globalThis.context,PREF_NAME);if(settings.language!undefined){awaitpref.put(language,settings.languageasstring);}if(settings.currency!undefined){awaitpref.put(currency,settings.currencyasstring);}if(settings.defaultPage!undefined){awaitpref.put(defaultPage,settings.defaultPageasstring);}if(settings.loadStats!undefined){awaitpref.put(loadStats,!!settings.loadStats);}if(settings.haptics!undefined){awaitpref.put(haptics,!!settings.haptics);}awaitpref.flush();}}这个 ArkTS 插件SettingsBridge使用 OpenHarmony 的preferences存储提供了一个轻量级的原生设置中心loadNativeSettings()负责从PREF_NAME指定的偏好文件中读取键值对如果不存在就返回默认值saveNativeSettings()则将来自 Web 层的设置写入 Preferences 并flush()到磁盘。由于键名与 Web 侧的字段一一对应序列化和反序列化都保持非常直接减少了出错空间。 总结基本设置模块将喝茶记录应用从“硬编码配置”升级为“用户可配置应用”。通过 Web 表单与 ArkTS Preferences 的组合语言、货币、默认首页、是否加载统计以及是否启用震动反馈等关键行为都可以由用户自行选择并长期保存。Cordova 在这里扮演了桥梁角色一端是 HTML/CSS/JavaScript 构建的设置界面另一端则是 OpenHarmony 的持久化能力与系统特性。未来如果需要扩展更多设置项例如主题色、图表引擎选择、数据自动同步开关只需在现有表单与SettingsBridge的基础上按相同模式扩展即可整个架构已经为此做好了准备。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人网站备案 流程搭建网站怎么赚钱

本文系统介绍了人工智能领域的基础概念,重点解释了神经网络如何通过将实际问题转化为数学问题来学习。详细阐述了神经网络作为复杂函数的表示方法、参数学习中的最优化问题、梯度下降和反向传播的工作原理,以及不同类型的损失函数。通过天气预测等实例&a…

张小明 2026/1/3 7:10:09 网站建设

南宁网站建设制作后台wordpress 插件升级慢

ComfyUI-Manager界面按钮消失问题终极解决方案 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 当你在使用ComfyUI时发现Manager按钮神秘消失,这通常是版本兼容性问题的典型表现。本文将为你提供从问题诊断…

张小明 2026/1/2 17:45:02 网站建设

河南网站托管哪家公司搭建网站

Zotero插件管理革命:告别繁琐操作,学术效率提升300% 【免费下载链接】zotero-addons Zotero add-on to list and install add-ons in Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons "为什么每次安装插件都像在拆弹&…

张小明 2025/12/29 12:33:35 网站建设

招标网址网站大全数据网站

打造家庭与小型办公网络安全防护体系 在当今的数字化时代,网络安全至关重要。无论是家庭网络还是小型办公网络,都需要一个可靠的防火墙来保障网络安全。本文将详细介绍如何构建和优化一个SOHO(小型办公室/家庭办公室)防火墙系统,以及相关的网络配置和安全设置。 静态IP地…

张小明 2025/12/29 12:33:02 网站建设

如何在天气预报网站做引流宁波做百度网站

Bili-Hardcore终极指南:5分钟轻松获取B站硬核会员资格 【免费下载链接】bili-hardcore bilibili 硬核会员 AI 自动答题,直接调用 B 站 API,非 OCR 实现 项目地址: https://gitcode.com/gh_mirrors/bi/bili-hardcore 还在为B站硬核会员…

张小明 2025/12/29 12:32:28 网站建设

网站备案转移电子商务网站实例

还在为游戏控制器兼容性问题而烦恼吗?无论您使用的是Xbox、PlayStation还是其他第三方游戏手柄,ViGEmBus控制器驱动都能让所有设备在Windows平台上完美运行。这款开源驱动通过先进的虚拟化技术,彻底解决了游戏设备兼容性的痛点,让…

张小明 2025/12/29 12:31:55 网站建设