网站建设与管期末试题,建设公司网站应有哪些功能,网站设计的能力要求,公众号背景图怎么制作1、HarmonyOS onClick点击事件#xff0c;如何实现重复点击同一个按钮或toggle#xff0c;两次间隔时间过短则失效#xff0c;来防止重复点击#xff1f;
onClick点击事件#xff0c;如何实现重复点击同一个按钮或toggle#xff0c;两次间隔时间过短则失效#xff0c;来…1、HarmonyOS onClick点击事件如何实现重复点击同一个按钮或toggle两次间隔时间过短则失效来防止重复点击
onClick点击事件如何实现重复点击同一个按钮或toggle两次间隔时间过短则失效来防止重复点击
参考demo
//定义一个节流函数throttle
function throttle(func: Function, interval: number) {let lastTime 0;return () {const nowTime Date.now();const remainTime interval - (nowTime - lastTime);if (remainTime 0) {lastTime nowTime;func();}};
}
//示例
Button(防止重复点击).onClick(throttle((){},5000))2、HarmonyOS CustomDialog弹窗返回手势时会消失在哪里可以拦截这个事件
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
说明
当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时如果注册该回调函数则不会立刻关闭弹窗。在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型从而根据原因选择是否能关闭弹窗。当前组件返回的reason中暂不支持CLOSE_BUTTON的枚举值。在onWillDismiss回调中不能再做onWillDismiss拦截。
3、HarmonyOS 如何控制自定义键盘获取焦点和失去焦点
如何控制自定义键盘获取焦点和失去焦点
参考demo
Entry
Component
struct TextInputExample {controller: TextInputController new TextInputController()State inputValue: string // 自定义键盘组件Builder CustomKeyboardBuilder() {Column() {Grid() {ForEach([1, 2, 3, 4, 5, 6, 7, 8, 9, *, 0, #], (item:number|string) {GridItem() {Button(item ).width(110).onClick(() {this.inputValue item})}})}.maxCount(3).columnsGap(10).rowsGap(10).padding(5)}.backgroundColor(Color.Gray)}build() {Column() {Button(拉起键盘).onClick(() {focusControl.requestFocus(txt1)}).id(btn1)Button(收起键盘).onClick(() {focusControl.requestFocus(btn1)})TextInput({ controller: this.controller, text: this.inputValue })// 绑定自定义键盘.customKeyboard(this.CustomKeyboardBuilder()).margin(10).border({ width: 1 }).height(48vp).id(txt1)TextInput({ placeholder: 没有关联自定义键盘 })}}
}4、HarmonyOS har默认router所在的层级是主窗口还是跟随所在的HSP router层
主窗口A子窗口B其中主窗口A存在HSP活检模块隐私中间页面-》人脸har活检页面子窗口B点击跳转HSP活检模块隐私中间页面getUIContext().getRouter活检模块隐私中间页面点击再跳转人脸har人脸har内部是否不需要getRouter方法进行跳转人脸har默认router所在的层级是主窗口还是跟随所在的HSP router层
根据UIContext说明WindowStage/Window可以通过loadContent接口加载页面并创建UI的实例所以UI实例和窗口是一一关联的也就是说想要通过UIContext获取UI实例的话必须在当前调用界面能追溯到一个UI窗口。如果UI上下文不明确则无法调用。
HSP页面路由跳转可参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/in-app-hsp-V5
HSPHarmony Shared Package是动态共享包可以包含代码、C库、资源和配置文件通过HSP可以实现代码和资源的共享。HSP不支持独立发布而是跟随其宿主应用的APP包一起发布与宿主应用同进程具有相同的包名和生命周期。
HAR页面路由跳转可参考命名路由https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-routing-V5 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。Router模块通过不同的url地址可以方便地进行页面路由轻松地访问不同的页面。本文将从页面跳转、页面返回、页面返回前增加一个询问框和命名路由这几个方面介绍如何通过Router模块实现页面路由。
5、HarmonyOS CustomDialogController的创建方式问题
showCaptch(){let alertDialog: CustomDialogController new CustomDialogController({builder: DialogSliderCaptch()})alertDialog.open()
}
//放在一个page中可以正常调用但公开成如下那样的一个函数就会报错很容易复现function showCaptch(){let alertDialog: CustomDialogController new CustomDialogController({builder: DialogSliderCaptch()})alertDialog.open()
}在ArkUI中CustomDialogController是一个页面级别的组件其生命周期是与页面绑定的。当 将CustomDialogController公开成一个函数时实际上是将其从页面上下文中剥离出来导致其无法正常使用。具体来说CustomDialogController在页面中的使用是通过页面的生命周期管理的例如在页面加载完成后初始化并在页面退出时销毁。如果将其公开成一个函数则无法保证其在正确的生命周期阶段被初始化和销毁从而导致不可预期的行为。此外CustomDialogController的一些属性和方法是与页面的生命周期相关的例如build方法用于在页面中构建UI组件而在函数中无法复用这个生命周期相关的逻辑。因此将CustomDialogController公开成一个函数会导致其无法正常工作因为它失去了与页面的绑定关系。