【每日学点HarmonyOS Next知识】输入框限制小数位数、列表偏移计算、web请求header问题、对话框宽度、Web权限
1、HarmonyOS textinput中inputFilter属性如何实现输入数字为两位小数的正整数?
textinput中inputFilter属性如何实现输入数字为两位小数的正整数
1、两位小数正整数。demo如下:
@Entry
@Component
struct 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#once
once(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