1. 程式人生 > >Cordova(ionic)專案實現雙擊返回鍵退出應用

Cordova(ionic)專案實現雙擊返回鍵退出應用

Android原生專案實現雙擊返回鍵退出應用,是十分簡單的,新增如下程式碼即可實現:

//記錄按鍵時間
    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){
            // 點選間隔大於兩秒,做出提示
            Toast.makeText(getApplicationContext(), "再按一次退出應用", Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        }else{
            finish();
            System.exit(0);
        }
    }

然而,在Cordova專案中,在繼承CordovaActivity的MainActivity中新增上面的程式碼並不起作用,原因是返回鍵已經被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("再點選一次退出!");
window.plugins.ToastPlugin.show_short('再點選一次退出!');
document.removeEventListener("backbutton", eventBackButton, false); //登出返回鍵
    //3秒後重新註冊
    var intervalID = window.setInterval(
        function() {
           window.clearInterval(intervalID);
           document.addEventListener("backbutton", eventBackButton, false); //返回鍵
        },
        3000
   );
}
//選單鍵
function eventMenuButton(){
    window.plugins.ToastPlugin.show_short('點選了 選單 按鈕!');
}
//搜尋鍵
function eventSearchButton(){
    window.plugins.ToastPlugin.show_short('點選了 搜尋 按鈕!');
}

上面的指令碼用到了Cordova的Toast外掛,外掛地址:
cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git

相關推薦

Cordova(ionic)專案實現返回退出應用

Android原生專案實現雙擊返回鍵退出應用,是十分簡單的,新增如下程式碼即可實現: //記錄按鍵時間 private long exitTime; @Override pub

ionic返回退出應用

.run(function ($ionicPlatform, $location, $ionicPopup, $ionicHistory, $rootScope, loginService, $state, $timeout) { ionic.Platform.

android實現返回提示退出

/** * 監聽返回鍵 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK &

Android 返回退出程式 實現

思路:使用者按下返回鍵時設定一個定時器來監控是否2秒內實現了退出,如果使用者沒有接著按返回鍵,則清除第一次按返回鍵的效果,使程式還原到第一次按下返回鍵之前的狀態。定時器是每次使用者按下返回鍵才去建立。 程式碼如下: /** * 選單、返回鍵響應 */ @Ove

Android 返回退出APP

private boolean isExit=false;//是否退出APP @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.K

Android程式返回(退出)退出

當用戶點選“退出”按鍵,用 Toast 彈出“再按一 次退出程式”,此時如果使用者在 2 秒內再次點選“退出”按鍵,則程式退出;否則再次 Toast彈出相同提示。  注意:這裡是雙擊返回鍵,而不是雙擊一個自己建立一個叫“退出”的按鈕。 程式碼: private lon

React Native(七):AndroidBack退出應用

歡迎一起來學習React Native,QQ群:672509442 廢話 這是個很常用的小功能,做開發很實用喲 先上程式碼 import {......, BackAndroid, ToastAndroid} from 'react-n

AppCan 返回按鈕退出應用

使用AppCan開發手機應用,攔截返回鍵實現自定義2秒內雙擊退出應用的操作 var c1c = 0; window.uexOnload = function(type){ uexWindow.

Android控制返回按鈕退出程序的代碼

err sed () ack TBase per androi text 控制 代碼過程中中,將代碼過程中比較常用的代碼段做個珍藏,下面的代碼內容是關於Android控制雙擊返回按鈕退出程序的代碼,應該是對大家有些幫助。 private static long back_p

ReactNative Android監聽返回,在某個頁面返回退出應用

在之前專案中,在進行返回鍵退出應用時,應用的程式碼如下: componentWillMount() { if (Platform.OS === 'android') { BackHandler.addEventListener('hardwa

vue實現編輯

js 實現雙擊重新編輯JS 實現雙擊編輯原始 HTML代碼:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="widt

JQuery如何實現事件時不觸發單事件

art 屏蔽 settime 事件 順序 tin on() () 延時 單擊和雙擊事件的執行順序: 單擊(click):mousedown,mouseout,click;  雙擊(dblclick):mousedown,mouseout,click , mou

Excel實現插入當前日期時間

visual blog ble log column for asi 開發工具 span 用vba做一個事件驅動程序。 第一步:點擊開發工具-visual basic。 第二步:在當前工作表中編制程序如下: Private Sub Worksheet_BeforeDoub

javascript實現網頁自動滾動,單滾動停止

滾動條 span clear IT != 我們 想想 size ava 當網頁中有長篇文章時,瀏覽起來就比較吃勁了,想想一邊忙著拖動滾動條,一邊忙著瀏覽,確實挺累人的。為了客人能夠輕松的瀏覽,我們可以使用script代碼實現網頁的自動滾屏,當雙擊網頁的時候,網頁將會自動向下

JS實現編輯可修改

需求 ner cli 技術 reat tex 復制 sele election 需求描述:在一段文字處雙擊可以進行修改,也就是雙擊後創建輸入框,輸入內容,在輸入框失去焦點後將輸入的內容再以文字的形式顯示出來,以下是html代碼: 1 <fieldset> 2

Jqgrid中動態生成colModel實現編輯整列時,鼠標定位在當前指定單元格

jqGrid使用鼠標定位雙擊的單元格通過配置ondbclick事件來實現雙擊功能ondblClickRow:function(rowid,iRow,iCol,e) {//獲取表格的初始model var colModel =$(TableId).jqG

JQuery如何實現事件時不觸發單事件,解決鼠標單沖突問題

方法 span eve 雙擊事件 col button null pan 綁定 在jQuery的事件綁定中,如果元素同時綁定了單擊事件(click)和雙擊事件(dblclick),那麽執行單擊事件(click)時,不會觸發雙擊事件(dblclick), 執行雙擊事件(dbl

IONIC按真機上的返回時,關閉所有的彈窗

       在IONIC的開發過程中,我們經常遇到這樣的情況:當你在手機上,彈出了一個提示,如 退出登入登入? yes / no,但這個時候,你不點選yes,也不點選no,你點選手機的返回時,這個彈框仍然還存在,直到退出這個應用時,這個彈框才關閉掉! &

phpstorm IDEA Shift會彈出 SearchEverywhere 對話方塊,如何取消這個功能

解決方法:一:Open lib/resources.jar/idea/PlatformActions.xml and remove or comment such line:   <action id="SearchEverywhere" class="com.intel

Android實現點選返回返回桌面而不是退出程式

有時候我們的應用我們希望他點選一次返回鍵的時候不是退出應用而是返回到桌面,比如像QQ和微信等聊天軟體,在主介面點選返回鍵的時候不是退出應用而是返回到桌面,那麼怎麼能夠實現這種需求呢?其實也很簡單,只需要重寫onKeyDown()這個方法,在方法裡面實現返回的程式碼,這樣就可以實現這個需求了,具體程式