写点什么

【每日学点 HarmonyOS Next 知识】输入框限制小数位数、列表偏移计算、web 请求 header 问题、对话框宽度、Web 权限

作者:轻口味
  • 2025-03-10
    北京
  • 本文字数:1494 字

    阅读完需:约 5 分钟

【每日学点HarmonyOS Next知识】输入框限制小数位数、列表偏移计算、web请求header问题、对话框宽度、Web权限

1、HarmonyOS textinput 中 inputFilter 属性如何实现输入数字为两位小数的正整数?

textinput 中 inputFilter 属性如何实现输入数字为两位小数的正整数


1、两位小数正整数。demo 如下:


@Entry@Componentstruct TextInputExample {  @State message: string = '0.3256'  controller: TextInputController = new TextInputController()  build() {    Column() {      TextInput({placeholder: '请输入内容', text: this.message })        .width('100%')          //类型为带小数点的数字输入模式,inputFilter会导致设置输入框类型(即type接口)附带的文本过滤效果失效        .type(InputType.NUMBER_DECIMAL)        .maxLength(11)          //显示定义正则表达式        .inputFilter('^-?\\d*\\.?\\d{0,2}$',(e) =>{          //^[0-9]+(.[0-9]{0,2})?$          //^-?\\d*\\.?\\d{0,2}$ 此正则可保留两位小数,不符合不允许输入类似0.000、00.10、001234类似的数字          //^(([1-9]{1}\d*)|([0]{1}))(\.(\d){0,2})?$ 此正则不生效,其他平台可以          //保留两位小数正则表达式          console.log('正则表达式-3',JSON.stringify(e))        })        .backgroundColor(Color.Red)    }  }}
复制代码


2、不能输入颜文字、表情等等场景可以使用 TextInput 的 inputFilter 属性设置正则表达式来拦截输入 比如以下 demo 设置只能输入字母: TextInput().inputFilter(’[a-z]’, (e) =\> { console.log(JSON.stringify(e)) })参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-textinput-V5

2、HarmonyOS scroller.currentOffset().yOffset 在列表加载更多后返回不正确?

列表需要监听滚动距离,这里使用 scroller.currentOffset()第一页正常,如果上拉加载更多后,获取的滚动距离会暴增参考 demo:


.onScroll(() => {  this.tabPosY = this.topAreaHeight - this.scroller.currentOffset().yOffset <= 0 ? 0 : this.topAreaHeight - this.scroller.currentOffset().yOffset})
复制代码

3、HarmonyOS 浏览器 Web 组件,需要在加载页面的时候设置默认 header 如何设置?

可以在 loadUrl 方法中设置 headers 参数。这个参数允许附加 HTTP 请求头


使用第二个参数 headers 就可,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#loadurl

4、HarmonyOS 自定义 Dialog 宽度?

请参考 width 属性:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5#ZH-CN_TOPIC_0000001884757950__customdialogcontrolleroptions%E5%AF%B9%E8%B1%A1%E8%AF%B4%E6%98%8E

5、HarmonyOS web 的请求权限目前可用吗?

有 onPermissionRequest 的请求回调吗?但是我们加载请求定位权限的链接没有响应这个回调,是需要其他什么配置吗参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#onceonce(type: string, callback: Callback<void>): void


订阅一次指定类型 Web 事件的回调,Web 事件的类型目前仅支持"webInited",在 Web 引擎初始化完成时触发。


当应用中开始加载第一个 Web 组件时,Web 引擎初始化,且后续再在同一应用中继续加载其他 Web 组件时不会再触发 once 接口。当应用销毁最后一个 Web 组件时,若再加载第一个 Web 组件,应用重新进入 Web 引擎初始化流程。


确保你的网页尝试访问了需要用户授权的资源,例如地理位置信息、摄像头等https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#ongeolocationshow


发布于: 刚刚阅读数: 6
用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017-10-17 加入

Android、音视频、AI相关领域从业者。 欢迎加我微信wodekouwei拉您进InfoQ音视频沟通群 邮箱:qingkouwei@gmail.com

评论

发布
暂无评论
【每日学点HarmonyOS Next知识】输入框限制小数位数、列表偏移计算、web请求header问题、对话框宽度、Web权限_HarmonyOS_轻口味_InfoQ写作社区