鸿蒙侧滑退出
鸿蒙侧滑退出
代码展示
//在侧滑退出应用时,用于判断是否第二次滑动
private isSecondPressBack:boolean=false;
onBackPress(): boolean | void {
if(this.isSecondPressBack){
return false;
}
else{
this.isSecondPressBack=true;
setTimeout(()=>{
this.isSecondPressBack=false
},1000);
this.getUIContext().getPromptAction().showToast({
message:'再划一次退出',
duration:1800
});
return true;
}
}默认isSecondPressBack=false
用户第一次侧滑
判断为假->else,isSecondPressBack=true 定时1s 1s内没有操作就给你改为false
提示你在1s内再进行操作就给你退出,否则
return true这一次终止你退出用户第二次侧滑
判断真->if
return false退出
一秒内滑动两次退出应用

onBackPress

setTimeout
全局**setTimeout()**方法设置一个计时器,当计时器到期时,该计时器将执行一个函数或指定的代码段。
setTimeout(functionRef, delay)
setTimeout(functionRef, delay, param1, param2, /* …, */ paramN)参数
计时器到期后要执行的
function。delay可选计时器应等待多长时间(以毫秒为单位)才能执行指定的函数或代码。如果省略此参数,则使用值 0,表示“立即”执行,或更准确地说,在下一个事件循环中执行。请注意,在这两种情况下,实际延迟都可能比预期时间长;请参阅下面的指定延迟时间过长的原因。另请注意,如果该值不是数字,则会对该值进行隐式类型强制以将其转换为数字——这可能导致意外和令人惊讶的结果;请参阅非数字延迟值会静默强制转换为数字以了解示例。
param1,…,paramN可选传递给
functionRef指定的函数的其他参数。
返回值
返回的timeoutID是一个正整数,用于标识通过调用setTimeout()创建的计时器。此值可以传递给clearTimeout()以取消超时。
保证在计时器仍处于活动状态时,后续对同一对象(窗口或工作线程)调用setTimeout()或setInterval()永远不会重用timeoutID值。但是,不同的对象使用单独的 ID 池。
超时可以使用clearTimeout()
const alarm = {
remind(aMessage) {
alert(aMessage);
this.timeoutID = undefined;
},
setup() {
if (typeof this.timeoutID === "number") {
this.cancel();
}
this.timeoutID = setTimeout(
(msg) => {
this.remind(msg);
},
1000,
"Wake up!",
);
},
cancel() {
clearTimeout(this.timeoutID);
},
};
window.addEventListener("click", () => alarm.setup());异步函数
setTimeout()是一个异步函数,这意味着计时器函数不会暂停函数栈中其他函数的执行。换句话说,您不能使用setTimeout()在函数栈中下一个函数触发之前创建“暂停”。
请参阅以下示例
setTimeout(() => {
console.log("this is the first message");
}, 5000);
setTimeout(() => {
console.log("this is the second message");
}, 3000);
setTimeout(() => {
console.log("this is the third message");
}, 1000);
// Output:
// this is the third message
// this is the second message
// this is the first message请注意,第一个函数不会在调用第二个函数之前创建 5 秒的“暂停”。相反,第一个函数会被调用,但会等待 5 秒执行。在第一个函数等待执行期间,第二个函数会被调用,并且第二个函数会应用 3 秒的等待时间,然后才会执行。由于第一个和第二个函数的计时器都未完成,因此第三个函数会被调用并首先完成执行。然后是第二个。最后,第一个函数在其计时器最终完成之后执行。