HarmonyOS 鸿蒙Next实现二次侧滑退出应用

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next实现二次侧滑退出应用

实现二次侧滑退出应用


关于HarmonyOS 鸿蒙Next实现二次侧滑退出应用的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

8 回复
import common from "@ohos.app.ability.common"; 
import { promptAction } from "@kit.ArkUI"; 

@Entry @Component struct IndexComponent { @State textColor: Color = Color.Black;

onPageShow() { this.textColor = Color.Blue; console.info(“IndexComponent onPageShow”); }

onPageHide() { this.textColor = Color.Transparent; console.info(“IndexComponent onPageHide”); }

firstBcakTimestamp: number = 0;

onBackPress() { console.info(“IndexComponent onBackPress”); this.textColor = Color.Red; let now = Date.now(); if (now - this.firstBcakTimestamp < 1000) { const context = getContext(this) as common.UIAbilityContext context.terminateSelf(); // 终止程序 } else { this.firstBcakTimestamp = now; let option: promptAction.ShowToastOptions = { message: “是否继续退出”// 可以是$r图片 } promptAction.showToast(option); } return true }

build() { Column() { Text(“Hello World”) .fontColor(this.textColor) .fontSize(30) .margin(30) }.width(“100%”) } }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

你这个示例考虑过promptAction最短时间为1500ms的问题吗?两次返回间隔要小于1s,而prompt 至少要1.5s才自己关闭,使用中prompt还未消失时按返回只是把prompt关闭,不能关闭应用,所以变成要按三次返回,有改进方法否?

期待HarmonyOS能在未来推出更多针对特定场景的优化功能。

没有你说的这个问题啊

可能NEXT里修复了,回头试一下,原来 API 9反映这个问题的人不少。

onBackPress() 这个事件怎么触发?

我下面这样写没用执行,是什么原因?
.onKeyEvent((event: KeyEvent) => {
console.error(`--------------KeyEvent------------`+event.keyCode);
if (event.keyCode === KeyCode.KEYCODE_BACK) {
this.onBackPressed(); // 处理返回键事件
return true; // 阻止默认行为
}
return false; // 允许其他按键事件传递
});

onBackPress() 这个事件怎么触发?

我下面这样写没用执行,是什么原因?
.onKeyEvent((event: KeyEvent) => {
console.error(`--------------KeyEvent------------`+event.keyCode);
if (event.keyCode === KeyCode.KEYCODE_BACK) {
this.onBackPressed(); // 处理返回键事件
return true; // 阻止默认行为
}
return false; // 允许其他按键事件传递
});

onBackPress() 这个事件怎么触发?

我下面这样写没用执行,是什么原因?
.onKeyEvent((event: KeyEvent) => {
console.error(`--------------KeyEvent------------`+event.keyCode);
if (event.keyCode === KeyCode.KEYCODE_BACK) {
this.onBackPressed(); // 处理返回键事件
return true; // 阻止默认行为
}
return false; // 允许其他按键事件传递
});
回到顶部