#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】07.【端侧工程】用户登录/注册-界面布局

鸿蒙第16篇——数据持久化 本文介绍的数据持久化是指鸿蒙应用的数据持久化存储。它是将内存中的数据通过文件或数据库的形式保存到设备存储中。鸿蒙支持多种数据存储方式, 包括用户首选项Preferences、 键值型数据库KV-Store和关系型数据库。 阅读详情

核心功能:使用AGC的认证服务-手机号码认证方式,用户使用手机号+短信验证码登录即注册。

一、界面布局设计

布局最外层是Navigation,左上角可返回上一界面。因为登录页面不是APP启动后的第一个界面,不强制用户登录;而是在其他界面操作时要求登录才跳转到登录界面,不登录可返回。

红色框:列布局Colum

绿色框:行布局Row

黄色框:层叠布局Stack

二、build()布局实现

理解了界面布局之后,需要在build体内声明式实现元素。

1.Logo/slogan,代码如下:

// logo
        Column(){
          Image($r('app.media.icon'))
            .width(216)
            .height(216)
            .margin({ top: 50 })
          Text('农民叔叔')
            .fontSize(24)
            .fontColor('#182431')
            .fontWeight(FontWeight.Medium)
          Text('病虫害诊断专家')
            .fontSize(16)
            .fontColor('#99182431')
            .margin({ top: 8,bottom:12 })
        }
        .justifyContent(FlexAlign.Start)

2.手机号/短信验证码输入框,代码如下:

Row(){
          Column(){
            // 手机号输入框
            Stack(){
              // 手机号
              TextInput({placeholder:'请输入手机号'})
                .type(InputType.PhoneNumber)
                .enterKeyType(EnterKeyType.Next)
                .defaultFocus(true)
                .placeholderColor($r('sys.color.ohos_id_color_text_hint'))
                .placeholderFont({size:$r('sys.float.ohos_id_text_size_body1')})
                .backgroundColor($r('sys.color.ohos_id_color_card_bg'))
                .maxLength(11)
                .fontSize($r('sys.float.ohos_id_text_size_body1'))
                .padding({left:82})
                .borderRadius($r('sys.float.ohos_id_corner_radius_notification'))
                .borderColor($r('sys.color.ohos_id_color_warning'))
                .inputFilter('^[0-9*]{0,11}$')
                .constraintSize({minHeight:56})

              // 区号,分割线
              Row(){
                Text('+86')
                  .fontColor($r('sys.color.ohos_id_color_text_primary'))
                  .fontSize($r('sys.float.ohos_id_text_size_body1'))
                  .fontFamily($r('sys.string.ohos_id_text_font_family_regular'))
                  .margin({left:12,right:$r('sys.float.ohos_id_elements_margin_horizontal_m')})
                  .direction(Direction.Ltr)
                // 分割线
                Divider()
                  .vertical(true)
                  .height(12)
                  .color($r('sys.color.ohos_id_color_list_separator'))
                  .margin({left:12})
              }
              .width('100%')
              .constraintSize({minHeight:56})
              .enabled(false)


            }
            .width('100%')

            // 验证码输入框
            TextInput({placeholder:'请输入验证码'})
              .type(InputType.Number)
              .enterKeyType(EnterKeyType.Done)
              .enableKeyboardOnFocus(true)
              .backgroundColor($r('sys.color.ohos_id_color_card_bg'))
              .placeholderColor($r('sys.color.ohos_id_color_text_hint'))
              .placeholderFont({size:$r('sys.float.ohos_id_text_size_body1')})
              .fontSize($r('sys.float.ohos_id_text_size_body1'))
              .maxLength(6)
              .padding({left:12})
              .margin({top:12})
              .borderRadius($r('sys.float.ohos_id_corner_radius_notification'))
              .borderColor($r('sys.color.ohos_id_color_warning'))
              .inputFilter('^[0-9*]{0,11}$')
              .constraintSize({minHeight:56})



          }
          .width('100%')



        }
        .width('100%')
        .margin(0)
        .padding({left:8,right:8})

3.获取验证码文本按钮,代码如下:

Row(){
          Text('获取验证码')
            .fontSize($r('sys.float.ohos_id_text_size_body1'))
            .fontColor($r('sys.color.ohos_id_color_text_primary_activated'))
            .fontWeight(FontWeight.Medium)
            .enabled(true)
            .clickEffect({level:ClickEffectLevel.LIGHT,scale:0.9})
            .onClick(() => {
              // TODO: 获取验证码

            })
        }
        .justifyContent(FlexAlign.End)
        .width('100%')
        .margin({top:12})
        .padding({right:8})

4.登录按钮,代码如下:

Row(){
          Button('登录')
            .width('100%')
            .height(40)
            .fontSize(16)
            .fontWeight(FontWeight.Medium)
            .backgroundColor('#007DFF')
            .onClick(() => {
              // TODO: 登录

            })
        }
        .width('100%')
        .margin({top:68})
        .padding({left:8,right:8})

5.隐私条款及勾选框,代码如下:

Row(){
          // 单选框
          Checkbox()
            .width(22)
            .height(22)
            .focusable(true)
            .selectedColor('#007DFF')
            .margin({right:12})
          // 文本
          Text(){
            Span('已阅读并同意')
              .fontColor($r('sys.color.ohos_id_color_text_secondary'))
              .fontFamily($r('sys.string.ohos_id_text_font_family_regular'))
              .fontSize($r('sys.float.ohos_id_text_size_body3'))
              .fontWeight(FontWeight.Regular)
              .opacity(0.8)

            Span('《隐私政策》')
              .fontColor($r('sys.color.ohos_id_color_text_primary_activated'))
              .fontFamily($r('sys.string.ohos_id_text_font_family_medium'))
              .fontWeight(FontWeight.Medium)
              .opacity(0.6)
              .fontSize($r('sys.float.ohos_id_text_size_body3'))
              .focusable(true)
              .focusOnTouch(true)
              .onClick(() => {
                // TODO: 打开隐私政策

              })
          }

        }
        .justifyContent(FlexAlign.Center)
        .width('100%')
        .margin({top:24})
        .padding({left:8,right:8})
        .constraintSize({minHeight:24})

6.完整的布局代码如下:

build() {
    // 页面导航
    Navigation(){
      Column(){
        // logo
        Column(){
          Image($r('app.media.icon'))
            .width(216)
            .height(216)
            .margin({ top: 50 })
          Text('农民叔叔')
            .fontSize(24)
            .fontColor('#182431')
            .fontWeight(FontWeight.Medium)
          Text('病虫害诊断专家')
            .fontSize(16)
            .fontColor('#99182431')
            .margin({ top: 8,bottom:12 })
        }
        .justifyContent(FlexAlign.Start)

        // 输入框
        Row(){
          Column(){
            // 手机号输入框
            Stack(){
              // 手机号
              TextInput({placeholder:'请输入手机号'})
                .type(InputType.PhoneNumber)
                .enterKeyType(EnterKeyType.Next)
                .defaultFocus(true)
                .placeholderColor($r('sys.color.ohos_id_color_text_hint'))
                .placeholderFont({size:$r('sys.float.ohos_id_text_size_body1')})
                .backgroundColor($r('sys.color.ohos_id_color_card_bg'))
                .maxLength(11)
                .fontSize($r('sys.float.ohos_id_text_size_body1'))
                .padding({left:82})
                .borderRadius($r('sys.float.ohos_id_corner_radius_notification'))
                .borderColor($r('sys.color.ohos_id_color_warning'))
                .inputFilter('^[0-9*]{0,11}$')
                .constraintSize({minHeight:56})

              // 区号,分割线
              Row(){
                Text('+86')
                  .fontColor($r('sys.color.ohos_id_color_text_primary'))
                  .fontSize($r('sys.float.ohos_id_text_size_body1'))
                  .fontFamily($r('sys.string.ohos_id_text_font_family_regular'))
                  .margin({left:12,right:$r('sys.float.ohos_id_elements_margin_horizontal_m')})
                  .direction(Direction.Ltr)
                // 分割线
                Divider()
                  .vertical(true)
                  .height(12)
                  .color($r('sys.color.ohos_id_color_list_separator'))
                  .margin({left:12})
              }
              .width('100%')
              .constraintSize({minHeight:56})
              .enabled(false)


            }
            .width('100%')

            // 验证码输入框
            TextInput({placeholder:'请输入验证码'})
              .type(InputType.Number)
              .enterKeyType(EnterKeyType.Done)
              .enableKeyboardOnFocus(true)
              .backgroundColor($r('sys.color.ohos_id_color_card_bg'))
              .placeholderColor($r('sys.color.ohos_id_color_text_hint'))
              .placeholderFont({size:$r('sys.float.ohos_id_text_size_body1')})
              .fontSize($r('sys.float.ohos_id_text_size_body1'))
              .maxLength(6)
              .padding({left:12})
              .margin({top:12})
              .borderRadius($r('sys.float.ohos_id_corner_radius_notification'))
              .borderColor($r('sys.color.ohos_id_color_warning'))
              .inputFilter('^[0-9*]{0,11}$')
              .constraintSize({minHeight:56})



          }
          .width('100%')



        }
        .width('100%')
        .margin(0)
        .padding({left:8,right:8})

        // 获取验证码文本按钮
        Row(){
          Text('获取验证码')
            .fontSize($r('sys.float.ohos_id_text_size_body1'))
            .fontColor($r('sys.color.ohos_id_color_text_primary_activated'))
            .fontWeight(FontWeight.Medium)
            .enabled(true)
            .clickEffect({level:ClickEffectLevel.LIGHT,scale:0.9})
            .onClick(() => {
              // TODO: 获取验证码

            })
        }
        .justifyContent(FlexAlign.End)
        .width('100%')
        .margin({top:12})
        .padding({right:8})

        // 登录按钮
        Row(){
          Button('登录')
            .width('100%')
            .height(40)
            .fontSize(16)
            .fontWeight(FontWeight.Medium)
            .backgroundColor('#007DFF')
            .onClick(() => {
              // TODO: 登录

            })
        }
        .width('100%')
        .margin({top:68})
        .padding({left:8,right:8})

        // 隐私条款
        Row(){
          // 单选框
          Checkbox()
            .width(22)
            .height(22)
            .focusable(true)
            .selectedColor('#007DFF')
            .margin({right:12})
          // 文本
          Text(){
            Span('已阅读并同意')
              .fontColor($r('sys.color.ohos_id_color_text_secondary'))
              .fontFamily($r('sys.string.ohos_id_text_font_family_regular'))
              .fontSize($r('sys.float.ohos_id_text_size_body3'))
              .fontWeight(FontWeight.Regular)
              .opacity(0.8)

            Span('《隐私政策》')
              .fontColor($r('sys.color.ohos_id_color_text_primary_activated'))
              .fontFamily($r('sys.string.ohos_id_text_font_family_medium'))
              .fontWeight(FontWeight.Medium)
              .opacity(0.6)
              .fontSize($r('sys.float.ohos_id_text_size_body3'))
              .focusable(true)
              .focusOnTouch(true)
              .onClick(() => {
                // TODO: 打开隐私政策

              })
          }

        }
        .justifyContent(FlexAlign.Center)
        .width('100%')
        .margin({top:24})
        .padding({left:8,right:8})
        .constraintSize({minHeight:24})
      }
      .width('100%')
      .height('100%')
      .backgroundColor($r('sys.color.ohos_id_color_sub_background'))
    }
    .hideBackButton(false)
    .title('登录')
    .titleMode(NavigationTitleMode.Mini)


  }

三、预览器效果

下一篇:用户登录/注册功能开发

【鸿蒙专题与实战】测试体系:单元测试、组件测试与 UI 测试 本文系统讲解鸿蒙开发中的三层测试实践:底层单元测试(用Hypium框架,优先覆盖纯函数、边界与异常)、中层ViewModel逻辑、顶层仅测3-5条关键UI路径。强调测试应“越往下写得越多”,因单元测试快且成本低,而UI测试慢易出错。通过实例说明断言拆分提升定位效率,结合覆盖率报告(hvigorwtest --coverage)发现盲区,核心是“用覆盖率找漏测,而非追求数字”。附五步落地清单:建测试文件、按优先级补用例、精简UI测试、生成报告、定位未覆盖行。下一篇将开启实战项目:从需求到上架全流程。 阅读详情

相关推荐

无刷直流电机矢量控制(四):基于滑模观测器的无传感器控制

无刷直流电机矢量控制,采用转速、电流双环控制,电流环dq解耦,d轴采用id=0控制,q轴采用转速外环。采用滑模观测器(SMO),根据电压电流信息进行电机位置角度动态估算,模型可直接运行,转速和角度跟踪精度较高。 本文整理了该方法的基本原理,介绍了在MATLAB/Simulink中的建模和仿真过程,最后附上完整的模型文件。 一、基本原理 滑模观测器(下文简称SMO)是基于滑模变结构控制方法的一种状态观测器。其针对无刷直流电机转子位置估算的实现过程如下。 假设采用矢量控...

Forster-C的博客 6865

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】06.部署模板示例的云测工程到AGC云端

云数据库部署成功后,DevEco自动从AGC下载云数据库的schema文件至“\Application\AppScope\resources\rawfile\schema.json”路径,该文件是端侧工程API必须引入的配置文件。登录AGC,选择“证书、APP ID和Profile”,新增证书->选择第1步创建的证书请求文件.csr,提交成功后返回列表->右侧下载,将证书保存在本地。登录AGC,选择“证书、APP ID和Profile”,设备->添加设备,提交成功。

与辉鸿蒙 560

macOS Monterey官方镜像高速下载指南(附迅雷链接+兼容性清单)

本文提供macOS Monterey官方镜像的高速下载指南,重点介绍利用迅雷等工具加速下载官方安装包的有效方法。同时,详细列出了系统兼容性清单,帮助用户在下载前确认设备支持,并分享了从下载、验证到安全安装的完整流程与常见问题解决方案。

j7k8l的博客 2182

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】04.创建端云一体化工程项目

进入主开发界面,可见刚刚新建的工程。端侧工程会自动执行“ohpm install”,云侧工程会自动执行“npm install”,以分别下载端侧和云侧依赖。该应用尚未启用数据处理位置,点击跳转到AGC,管理设置默认中国站点,后续开发的云服务资源都将部署在中国站点。3.关联所属项目,并打开我们将使用到的开放能力“认证服务”、“云存储”和“云托管”。4.在APP ID列表中“发布”刚才新建的农民叔叔,之后才能在“我的应用”所见该应用。或在“我的应用”中新建发布,选取新建的APP ID,支持设备选“手机”。

与辉鸿蒙 379

MTK Sensor驱动调试实战:从AP到SCP的完整流程解析

本文详细解析了MTK平台Sensor驱动从AP侧到SCP侧的完整调试流程。内容涵盖AP侧驱动集成、DTS配置、内核编译与验证,以及SCP侧Tinysys框架下的代码集成、Overlay配置与I2C设置等核心步骤,并分享了中断唤醒、功耗优化及传感器数据校准等实战经验与常见问题排查方法,为硬件驱动工程师提供了一份全面的实战指南。

weixin_29175469的博客 353

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5630

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】11.【端侧工程】获取手机短信验证码登录注册真机调试注意事项

相同的手机号重复登录时,提示登录失败:already sign in a user ,please sign out at first.1.初始化认证服务auth、CloudFoundationKit,以及配置首选项preferences。这是因为已登录的手机号未正常登出,auth不允许相同手机号重复登录。2.端云一体化工程调试目前只支持真机运行;完成以上初始化及配置,可正常获取短信验证码及登录成功!打开程序入口文件EntryAbility.ets,登出/退出功能在后续的“我的”页面实现。

与辉鸿蒙 461

激光可燃气体传感器DIY指南:从TDLAS原理到STM32实战(附代码)

本文详细介绍了如何DIY激光可燃气体传感器,从TDLAS原理到STM32实战,包括硬件选型、光路搭建、电子系统设计和嵌入式软件开发。通过TDLAS技术实现高灵敏度甲烷检测,适合工业安全和环境监测应用。附有完整代码和实用调试技巧,帮助开发者快速掌握光学气体检测技术。

fanta的博客 440

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】09.【端侧工程】用户手机号+短信验证码登录即注册

src>>main>>ets>>pages目录下新建登录页面LoginPage.ets,在登录页面引入auth。调用auth.requestVerifyCode给合法的手机号发送短信验证码。登录按钮调用auth.signIn方法,首次登录时创建用户(登录即注册)获取短信验证码时,需要判断用户输入的手机号是否合法(通过正则表达式)登录/注册成功后,在手机APP端保存auth返回的用户信息。间隔30秒才可以再次请求发送短信验证码,倒计时30秒。下一篇:通过用户首选项实现数据持久化。是否打勾同意《隐私协议》

与辉鸿蒙 330

逆变器专题(3)-锁相环-PLL

锁相环作为并网逆变器的第一道门户,其锁相的精度将直接影响逆变器是否并网成功,若锁相精度较差,则会直接导致系统的功率因数下降,产生无功等等。在有关文献中指出,提高PLL带宽可以准确且快速进行锁相,而当电网电压含有谐波时,可适当降低带宽抵制谐波的干扰。成为变化量,而如果两者旋转速度达到一致时,所在的交轴分量。ki很大,即带宽很大时,稳定裕度不够,锁相环锁不住。为交流量,当频率锁定而相位没有锁定时,即。,即控制环前馈,可实现将锁相速度的加快。控为0,则可实现系统完美锁相。mod,取余,可减少存储空间。

cyc19980105的博客 6183

Arduino安装图文教程:小白也能轻松上手

手把手带你完成Arduino安装全过程,无论你是编程新手还是硬件小白,都能快速搭建开发环境。结合arduino安装教程与实操步骤,避开常见错误,让创作即刻启程。

weixin_35509395的博客 1107

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】10.【端侧工程】通过首选项Preferences实现用户数据持久化

创建models目录,src>>main>>ets>>models,此目录下新建ArkTS 文件UserModel.ets,即用户信息实体类。通过手机号认证服务接口登录/注册成功返回的用户信息,我们通过Preferences首选项进行存储。登录按钮事件下auth.signIn()成功返回后,保存用户信息。首选项监听接口IPreferencesListener.ets。首选项操作类PreferencesHandler.ets。用户控制器类UserController.ets。

与辉鸿蒙 186

数学建模学习(121):Python实现模糊AHP(Fuzzy AHP)——从原理到实践

Python实现模糊AHP(Fuzzy AHP)

全栈川川 1541

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】02.核心功能操作路径及ModelArts AI图像识别技术

V1.0版本功能极其简单,核心功能只有“AI诊断分析”,用户路径是:注册/登录->手机拍照或从相册选取->调用AI图像识别能力诊断分析图片->ModelArts AI在线服务返回结果->APP展示病虫害结果->保存我的诊断记录。请关注我的后续文章,如何在华为ModelArts平台上部署AI图像识别模型在线服务。

与辉鸿蒙 1185

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

HarmonyOS 7 端侧 AI 图像超分的工程化落地

用户抱怨网络差的时候图片传不上去,更严重的是,大量的私密照片上传到云端,引发了严重的隐私合规审查危机。痛定思痛后,我们决定把 AI 模型直接塞进手机里,用端侧的 NPU 来做推理,但这绝非易事。我们首先在服务端对模型进行了知识蒸馏,把参数砍掉了一大半,然后利用 MindSpore Lite 的转换工具,将模型转成了鸿蒙底层支持的。即便如此,模型依然有 20 多兆,我们最终选择了 FP16 量化,牺牲了极其微小的画质,换取了内存占用减半。推理过程极其消耗 CPU 和内存,稍微大一点的图,处理时间长达几秒。

2602_97267507的博客 160

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

〖物流终端实战 05〗纯血鸿蒙 ArkTS 高阶性能优化:长列表渲染、组件复用与内存泄漏排查

本文深度剖析鸿蒙ArkTS高阶性能优化,直击长列表卡顿与内存泄漏痛点。针对渲染,指出ForEach全量构建的缺陷,强调采用LazyForEach(V2推荐Repeat)配合增量通知及稳定业务Key;针对组件复用,明确@Reusable仅复用实例不重置状态,必须在aboutToReuse中手动清理UI状态;针对内存泄漏,总结全局监听未注销、定时器未清理及长生命周期对象持有页面引用三大元凶,并指导通过DevEco Profiler的Heap快照排查引用链。文章强调优化需遵循“先定位后改代码”原则,助力开发者打造

Eyf • 半字节的博客 680

AppGallery 上架自检 SOP:签名、隐私对齐与包体校验实战【鸿蒙心迹】

上架被驳回多因签名、隐私声明与包体不一致。本文提炼“签名→隐私对齐→包体校验”自检SOP,配套一键脚本与权限三角校验代码,实现90%驳回前置拦截。通过CI强制release签名、代码/声明/功能三者权限对齐、包体完整性校验,确保提审一次过。实战清单可直接抄,让过审从运气变为流程。

wdracky的专栏 327

窗口销毁了监听还在,HarmonyOS 7 生命周期释放的归属分界

综上所述,onWindowStageWillDestroy 是窗口监听的最后安全出口,onWindowStageDestroy 只负责断开窗口引用,onDestroy 管 Ability 级资源——三者不是“程度不同的退出回调”,而是各自有明确的归属范围。窗口监听的所有者是 WindowStage,定时器的所有者是 UIAbility,播放器的所有者是页面或 Ability(取决于你在哪一层创建的),ApplicationContext 监听的所有者是 Ability 的 context。

qq_61905492的博客 205

20 嵌入式系统架构:架构模式、实时操作系统、鸿蒙案例

嵌入式架构模式怎么选、RTOS 和通用操作系统差在哪、优先级反转怎么破?本篇把前后台、中断驱动、管态目态几种结构排成一条演进线,手把手算 RMS 可调度界限、判断任务集能不能跑得动,再把优先级继承与优先级天花板两种解法对上号,配鸿蒙案例讲清工程落地。

weixin_46316564的博客 198

HarmonyOS API 26 HMAF Skill 可解释任务计划与失败回退

围绕 HMAF Skill 的输入校验、权限边界、任务计划和失败回退,建立可观察、可重试的应用侧智能体执行模型。

2401_84996024的博客 270

鸿蒙 PC 桌面端应用上架实战:图匠流程图编辑器从上游 draw.io 发行包到 AGC 过审的 SIGABRT 收敛之路

鸿蒙 PC 桌面端应用上架实战:图匠流程图编辑器从上游 draw.io 发行包到 AGC 过审的 SIGABRT 收敛之路

wei_shuo的博客 135

RN鸿蒙空间音频实战

示例仓库:https://atomgit.com/m0_37170006/react-native-ohos-spatial-audio 社区导引:框架源码与版本发布见 https://atomgit.com/CPF-RN/ohos_react_native/tree/0.84-main CPF-RN 鸿蒙社区:https://atomgit.com/CPF-rn。

buhuisuanfa的博客 2万+

HarmonyOS PC 端适配实战:断点、分栏与键鼠交互

本文详解鸿蒙HarmonyOS在PC端的适配核心:以断点系统按窗口宽度(sm/md/lg)动态布局,结合GridRow与Navigation实现响应式分栏;重点强调键鼠交互(焦点、hover、右键、快捷键、滚轮)占七成工作量;通过交互模式抽象统一触屏与鼠标逻辑;强制声明最小窗口尺寸并自测小窗口场景;最终以“列表+详情”真实案例展示数据层一致、展示层双态的适配策略。

信息安全领域优质创作者|操作系统领域专家 193

React Native for OpenHarmony 实战:react-native-file-logger 日志库鸿蒙化适配

本文记录了将 react-native-file-logger 适配至 OpenHarmony 的实战过程。基于鸿蒙 7.0 模拟器,通过 5 个 TurboModule 方法实现日志落盘、轮转、列举与删除,采用 fileIo 实现核心功能,支持按大小和跨天轮转,归档文件命名精确至毫秒。邮件发送功能因平台限制按能力边界处理,明确拒绝并提示用户手动导出。验证通过,日志文件结构清晰,内容完整,产出 HAP 示例与独立 HAR 库,中英双语文档齐全,为鸿蒙应用日志管理提供可靠方案。

m0_62930060的博客 266

鸿蒙沉浸光感开发适配

设备材质档位:EXQUISITE(精致,全光效,高性能设备)、GENTLE(均衡,默认)、SMOOTH(轻量,仅基础效果,低算力设备)、ADAPTIVE(自适应,系统自动识别算力选档,业务首选);用户系统设置三档(强/均衡默认/弱):本质是对透明度、反色率、折射强度的精细调控。用户的三档偏好由系统底层自动映射到渲染参数,应用只需一次定义材质,界面就会随用户设置平滑过渡,完全不需要针对三档分别写适配。

qq_63223749的博客 416

操作系统安全体系能到哪一步?卓伊凡:服务端看认证,Ubuntu看默认,欧拉看体系,鸿蒙是另一条路

操作系统安全体系当前已实现分层保障:内核级强制访问控制(如SELinux、AppArmor)、默认攻击面收窄、密码学加密与制度化测评构成四重防线。在官方测评中,华为欧拉V3、阿里云服务器等三款系统达Ⅰ级安全可靠标准,鸿蒙桌面则首获Ⅱ级认证。Ubuntu高版本默认安全工程化出色,但加固也可能引入新漏洞。欧拉与鸿蒙技术路线不同——前者为服务端Linux加固体系,后者为终端微内核+形式化验证架构,二者可协同构建“端云安全”,但不可混为一谈。安全本质是相对的,需结合场景、运维能力与测评体系理性选型。

一颗优雅草科技-央千澈的优快云博客~只想无穷无尽的学习~作息早8-晚8 135
上一篇: #放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】04.创建端云一体化工程项目
下一篇: #放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】08.【端侧工程】开通手机号码认证服务及集成SDK
鸿花粉
博客等级 码龄20年 321粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿花粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值