web app 中物理返回鍵的監聽
使用Vue + Vant 進行web app 的開發,需要處理 android 自帶的物理返回鍵,對不同頁面,點選物理返回鍵進行不同的處理
那如何監聽到物理返回鍵,並進行相應的處理?
app網頁返回鍵 vs 手機物理返回鍵
網頁上的返回鍵是返回上一個頁面的意思,
手機上的返回鍵是返回上一個操作。
並且手機上的返回鍵還有很多其它功能,在使用某些軟體可以雙擊返回鍵退出app
Vue 中監聽物理返回鍵
使用h5+ 提供的 plus 物件進行處理,具體程式碼如下
document.addEventListener('plusready', function () {
var webview = plus.webview.currentWebview();
plus.key.addEventListener('backbutton', function () {
webview.canBack(function (e) {
if (e.canBack) {
webview.back(-1); //返回上一頁
} else {
webview.close(); //關閉應用
}
})
});
plus is not defined
在使用過程中,會遇到錯誤"plus is not defined" , 所以,在使用plus時,注意判斷plus是否存在。
程式碼如下:
if (window.plus) {
this.plusReady()
} else {
document.addEventListener('plusready', this.plusReady, false)
}
將 backbutton 事件的新增,處理程式,寫在 plusReady 方法中,即可
單擊返回,雙擊退出app
實現,單擊返回鍵進行退出,雙擊退出app
分析:通過一個 first 變數來記錄次數,且兩次點選的時間間隔不能超過1500.
程式碼如下:
document.addEventListener('plusready', function () {
var webview = plus.webview.currentWebview();
plus.key.addEventListener('backbutton', function () {
webview.canBack(function (e) {
if (e.canBack) {
webview.back();
} else {
//首頁返回鍵處理
//處理邏輯:1秒內,連續兩次按返回鍵,則退出應用;
var first = null;
plus.key.addEventListener('backbutton', function () {
//首次按鍵,提示‘再按一次退出應用’
if (!first) {
first = new Date().getTime();
alert('再按一次退出應用');//返回提示
setTimeout(function () {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1500) {
plus.runtime.quit();
}
}
}, false);
}
})
});
});
作者:doubleyong
公眾號:bug收集
部落格:bugshouji.com (專門解決與收集bug的網站)
歡迎新增下面的 “公眾號” ,可以第一時間獲到文章推送 @_@
相關文章
- H5-監聽任何安卓機、App自帶的物理返回鍵H5安卓APP
- H5頁面監聽Android物理返回鍵H5Android
- JS監聽手機物理返回鍵(及IOS微信端的bug)JSiOS
- 安卓使用物理鍵監聽器安卓
- uniapp打包成apk,監聽安卓手機的返回鍵APPAPK安卓
- android PopupWindow監聽返回鍵無效Android
- Web中的監聽器【Listener】Web
- 使用h5新特性,輕鬆監聽任何App自帶返回鍵H5APP
- Flutter監聽路由返回Flutter路由
- React Native物理back返回鍵的使用React Native
- Java中的鍵盤監聽事件KeyListenerJava事件
- cocos creator(十三)android平臺返回鍵的監聽實現Android
- java鍵盤監聽之視窗監聽的實現Java
- 監聽鍵盤事件事件
- swift 訊息監聽和鍵值監聽(kvo)Swift
- 鍵盤監聽事件--向左事件
- java監聽組合鍵Java
- javascript監聽鍵盤事件JavaScript事件
- javaWeb中的監聽器JavaWeb
- Laravel 中的事件監聽Laravel事件
- python pynput監聽鍵盤Python
- Android Home鍵監聽Android
- Web中的監聽器【Listener】與過濾器【Filter】 例項Web過濾器Filter
- vue的監聽鍵盤事件的快捷方法Vue事件
- Android Home鍵、鎖屏鍵監聽Android
- weex生成的單頁應用嵌入app中,點選物理返回鍵時如何返回上一個路由頁面,而不是直接退出單頁應用,回到原生app頁面APP路由
- Android 監聽home鍵的動作Android
- Cocos2d-x 3.x android平臺選單返回鍵監聽Android
- java全域性滑鼠鍵盤監聽Java
- home鍵監聽(Android應用切換到後臺監聽)Android
- SpringBoot 中釋出ApplicationEventPublisher,監聽ApplicationEvent 非同步操作Spring BootAPP非同步
- Android 監聽鍵盤彈出收起Android
- (譯文)swift中的監聽者Swift
- vuex中的state在元件中如何監聽?Vue元件
- 移動Web——localStorage,sessionStorage,Storage事件監聽WebSession事件
- android開發中,監聽軟鍵盤的狀態(收起或者開啟)Android
- iOS 之鍵值編碼(KVC)與鍵值監聽(KVO)iOS
- AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽Android