ionic App問題總結(jié)系列之ionic點(diǎn)擊系統(tǒng)返回鍵退出App
在安卓下,如果不處理系統(tǒng)返回鍵的事件,那么每次點(diǎn)擊返回鍵,將頁面將返回到上一個(gè)路由,這種邏輯不符合app的路由邏輯。正確的應(yīng)該是:當(dāng)頁面到了各個(gè)導(dǎo)航頁的首頁時(shí),此時(shí)再按返回鍵應(yīng)該提示是否退出app,用戶點(diǎn)擊確認(rèn)后退出app。
在run()方法中添加下面的方法
$ionicPlatform.registerBackButtonAction(function (e){ //阻止默認(rèn)的行為 e.preventDefault(); // 退出提示框 function showConfirm() { var servicePopup = $ionicPopup.show({ title: '提示', subTitle: '你確定要退出應(yīng)用嗎?', scope: $rootScope, buttons: [ { text: '取消', type: 'button-clear button-assertive', onTap: function () { return 'cancel'; } }, { text: '確認(rèn)', type: 'button-clear button-assertive border-left', onTap: function (e) { return 'active'; } }, ] }); servicePopup.then(function (res) { if (res == 'active') { // 退出app ionic.Platform.exitApp(); } }); } // 判斷當(dāng)前路由是否為各個(gè)導(dǎo)航欄的首頁,是的話則顯示提示框 if ($location.path() == '/index' || $location.path() == '/product' || $location.path() == '/account' || $location.path() == '/more') { showConfirm(); } else if ($ionicHistory.backView()) { $ionicHistory.goBack(); } else { showConfirm(); } return false; }, 101); //101優(yōu)先級(jí)常用于覆蓋‘返回上一個(gè)頁面'的默認(rèn)行為
$ionicPlatform.registerBackButtonAction()
該方法是用來注冊(cè)系統(tǒng)返回鍵事件。每次點(diǎn)擊只會(huì)執(zhí)行最高優(yōu)先級(jí)的那個(gè)行為。比如當(dāng)頁面存在一個(gè)modal框的時(shí)候,此時(shí)點(diǎn)擊系統(tǒng)返回鍵則是關(guān)閉modal框,而不是返回上個(gè)視圖。
ionic官方已經(jīng)定義了常用的行為的優(yōu)先級(jí):
- 返回上個(gè)視圖=100;
- 關(guān)閉側(cè)欄菜單=150;
- 關(guān)閉Modal=200;
- 關(guān)閉 action sheet=300;
- 關(guān)閉popup=400;
- 關(guān)閉loading=500;
用法如下:
registerBackButtonAction(callback, priority, [actionId])
所以當(dāng)你要重寫ionic官方定義上面那些行為,你只需要設(shè)置優(yōu)先級(jí)大于那些行為的優(yōu)先級(jí)即可。比如你要覆蓋的是返回上個(gè)視圖的行為,那么你只需要傳入的proirity的值大于100(同時(shí)要小于150)即可。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實(shí)現(xiàn)模仿桌面窗口的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)模仿桌面窗口的方法,可實(shí)現(xiàn)模仿桌面窗口的打開、關(guān)閉、移動(dòng)、縮放及最大化、最小化等功能,需要的朋友可以參考下2015-07-07js 判斷當(dāng)前時(shí)間是否處于某個(gè)一個(gè)時(shí)間段內(nèi)
這篇文章主要介紹了js 判斷當(dāng)前時(shí)間是否處于某個(gè)一個(gè)時(shí)間段內(nèi),使用 jutils - JavaScript常用函數(shù)庫的 isDuringDate 函數(shù)來實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動(dòng)文字的方法
這篇文章主要介紹了JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動(dòng)文字的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁面元素的相關(guān)技巧,需要的朋友可以參考下2016-04-04Bootstrap Tooltip顯示換行和左對(duì)齊的解決方案
小編在使用Bootstrap的Tooltip功能時(shí)遇到一些小問題,換行丟失,文字不是左對(duì)齊。下面小編給大家介紹下Bootstrap Tooltip顯示換行和左對(duì)齊的解決方案,感興趣的朋友一起看看吧2017-10-10JavaScript實(shí)現(xiàn)解析INI文件內(nèi)容的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)解析INI文件內(nèi)容的方法,結(jié)合實(shí)例形式分析了javascript通過自定義函數(shù)實(shí)現(xiàn)針對(duì)ini文件解析操作的相關(guān)處理技巧,需要的朋友可以參考下2016-11-11js案例之鼠標(biāo)跟隨jquery版(實(shí)例講解)
下面小編就為大家?guī)硪黄猨s案例之鼠標(biāo)跟隨jquery版(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07javascript動(dòng)畫對(duì)象支持加速、減速、緩入、緩出的實(shí)現(xiàn)代碼
javascript動(dòng)畫對(duì)象支持加速、減速、緩入、緩出的實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-09-09