Cordova(ionic)項(xiàng)目實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用
Android原生項(xiàng)目實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用,是十分簡(jiǎn)單的,添加如下代碼即可實(shí)現(xiàn):
//記錄按鍵時(shí)間
private long exitTime;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
exit();
}
return super.onKeyDown(keyCode, event);
}
public void exit(){
if ((System.currentTimeMillis()-exitTime)>2000){
// 點(diǎn)擊間隔大于兩秒,做出提示
Toast.makeText(getApplicationContext(), "再按一次退出應(yīng)用", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
}else{
finish();
System.exit(0);
}
}
然而,在Cordova項(xiàng)目中,在繼承CordovaActivity的MainActivity中添加上面的代碼并不起作用,原因是返回鍵已經(jīng)被Cordava的WebView處理掉了。
解決辦法:在app.js的config中添加如下代碼:
// 等待加載PhoneGap
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap加載完畢
function onDeviceReady() {
//按鈕事件
document.addEventListener("backbutton", eventBackButton, false); //返回鍵
document.addEventListener("menubutton", eventMenuButton, false); //菜單鍵
document.addEventListener("searchbutton", eventSearchButton, false); //搜索鍵
}
//返回鍵
function eventBackButton(){
//confirm("再點(diǎn)擊一次退出!");
window.plugins.ToastPlugin.show_short('再點(diǎn)擊一次退出!');
document.removeEventListener("backbutton", eventBackButton, false); //注銷(xiāo)返回鍵
//3秒后重新注冊(cè)
var intervalID = window.setInterval(
function() {
window.clearInterval(intervalID);
document.addEventListener("backbutton", eventBackButton, false); //返回鍵
},
3000
);
}
//菜單鍵
function eventMenuButton(){
window.plugins.ToastPlugin.show_short('點(diǎn)擊了 菜單 按鈕!');
}
//搜索鍵
function eventSearchButton(){
window.plugins.ToastPlugin.show_short('點(diǎn)擊了 搜索 按鈕!');
}
上面的腳本用到了Cordova的Toast插件,插件地址:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Angular+ionic實(shí)現(xiàn)折疊展開(kāi)效果的示例代碼
- ionic+html5+API實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用
- ionic2.0雙擊返回鍵退出應(yīng)用
- 三步實(shí)現(xiàn)ionic3點(diǎn)擊退出app程序
- ionic4+angular7+cordova上傳圖片功能的實(shí)例代碼
- ionic使用angularjs表單驗(yàn)證(模板驗(yàn)證)
- Angular 4.x+Ionic3踩坑之Ionic3.x pop反向傳值詳解
- 基于Ionic3實(shí)現(xiàn)選項(xiàng)卡切換并重新加載echarts
相關(guān)文章
JS 組件系列之 bootstrap treegrid 組件封裝過(guò)程
最近產(chǎn)品需要設(shè)計(jì)一套相對(duì)完整的組織架構(gòu)的解決方案,由于組織架構(gòu)涉及到層級(jí)關(guān)系,在表格里面展示層級(jí)關(guān)系,自然就要用到所謂的treegrid。下面小編通過(guò)本文給大家分享JS 組件系列之 bootstrap treegrid 組件的封裝過(guò)程,需要的朋友可以參考下2017-04-04
如何在webpack項(xiàng)目中調(diào)試loader插件
最近在學(xué)習(xí)webpack,本文主要介紹了loader插件的調(diào)試方法,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
bootstrap paginator分頁(yè)插件的兩種使用方式實(shí)例詳解
Bootstrap Paginator是一款基于Bootstrap的js分頁(yè)插件,下面通過(guò)本文給大家介紹bootstrap paginator分頁(yè)插件的兩種使用方式,一起看看吧2017-11-11
JavaScript中類(lèi)型的強(qiáng)制轉(zhuǎn)換與隱式轉(zhuǎn)換詳解
類(lèi)型強(qiáng)制Coercion是將值從一種類(lèi)型轉(zhuǎn)換為另一種類(lèi)型的過(guò)程(例如字符串轉(zhuǎn)換為數(shù)字,對(duì)象轉(zhuǎn)換為布爾值等),下面這篇文章主要給大家給大家介紹了JavaScript中類(lèi)型的強(qiáng)制轉(zhuǎn)換與隱式轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2021-08-08
javascript Array對(duì)象使用小結(jié)
數(shù)組是一段線性分配的內(nèi)存,它通過(guò)整數(shù)去計(jì)算偏移并訪問(wèn)其中的元素。數(shù)組是很快的數(shù)據(jù)結(jié)構(gòu),但不幸的是,Javascript并沒(méi)有像這種數(shù)組一樣的數(shù)據(jù)結(jié)構(gòu)。2009-12-12
JavaScript利用鍵盤(pán)碼控制div移動(dòng)
這篇文章主要為大家詳細(xì)介紹了JavaScript利用鍵盤(pán)碼控制div移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
Bootstrap 實(shí)現(xiàn)表格樣式、表單布局的實(shí)例代碼
這篇文章主要介紹了Bootstrap 實(shí)現(xiàn)表格樣式、表單布局的實(shí)例代碼,需要的朋友可以參考下2018-12-12

