问题

注册安卓硬件返回按钮事件是必须的,因为用户不小心点击了返回按钮就退出app体验很不好,所以有几种方法:
1.实现按返回键最小化应用(最小化应用需要装cordova-plugin-appminimize插件,使用window['AppMinimize'].minimize();)。
2.要么请求用户确认(添加一个Confirmation Alerts)。
3.按一下提示,按两下退出(加一个方法用toast提醒)。
这里用第三种展示。
解决
在app.html中,添加#myNav,在app.component.ts文件通过@ViewChild('myNav')获取:
<ion-nav #myNav [root]="rootPage"></ion-nav>
在app.component.ts中:
import {Component, ViewChild} from '@angular/core';
import {Platform, ToastController, Nav, IonicApp} from 'ionic-angular';
import {StatusBar, Splashscreen} from 'ionic-native';
import {TabsPage} from '../pages/tabs/tabs';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
rootPage = TabsPage;
backButtonPressed: boolean = false; //用于判断返回键是否触发
@ViewChild('myNav') nav: Nav;
constructor(public ionicApp: IonicApp, public platform: Platform, public toastCtrl: ToastController) {
platform.ready().then(() => {
StatusBar.styleDefault();
Splashscreen.hide();
this.registerBackButtonAction();//注册返回按键事件
});
}
registerBackButtonAction() {
this.platform.registerBackButtonAction(() => {
//如果想点击返回按钮隐藏toast或loading或Overlay就把下面加上
// this.ionicApp._toastPortal.getActive() || this.ionicApp._loadingPortal.getActive() || this.ionicApp._overlayPortal.getActive()
let activePortal = this.ionicApp._modalPortal.getActive();
if (activePortal) {
activePortal.dismiss().catch(() => {});
activePortal.onDidDismiss(() => {});
return;
}
let activeVC = this.nav.getActive();
let tabs = activeVC.instance.tabs;
let activeNav = tabs.getSelected();
return activeNav.canGoBack() ? activeNav.pop() : this.showExit();//另外两种方法在这里将this.showExit()改为其他两种的方法的逻辑就好。
}, 1);
}
//双击退出提示框
showExit() {
if (this.backButtonPressed) { //当触发标志为true时,即2秒内双击返回按键则退出APP
this.platform.exitApp();
} else {
this.toastCtrl.create({
message: '再按一次退出应用',
duration: 2000,
position: 'top'
}).present();
this.backButtonPressed = true;
setTimeout(() => this.backButtonPressed = false, 2000);//2秒内没有再次点击返回则将触发标志标记为false
}
}
}
在tabs.html中,添加#mainTabs,在tabs.ts文件通过@ViewChild('mainTabs') tabs:Tabs;获取:
<ion-tabs #mainTabs> <ion-tab [root]="tab1Root" tabTitle="Home" tabIcon="home"></ion-tab> <ion-tab [root]="tab2Root" tabTitle="About" tabIcon="information-circle"></ion-tab> <ion-tab [root]="tab3Root" tabTitle="Contact" tabIcon="contacts"></ion-tab> </ion-tabs>
在tabs.ts中:
import {Component, ViewChild} from '@angular/core';
import { HomePage } from '../home/home';
import { AboutPage } from '../about/about';
import { ContactPage } from '../contact/contact';
import {Tabs} from "ionic-angular";
@Component({
templateUrl: 'tabs.html'
})
export class TabsPage {
@ViewChild('mainTabs') tabs:Tabs;//加这句以及引用两个模块
tab1Root: any = HomePage;
tab2Root: any = AboutPage;
tab3Root: any = ContactPage;
constructor() {
}
}
完成。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ionic2
# android
# 返回按钮
# Android 滑动返回Activity的实现代码
# Android 实现按两次返回键退出程序(两种方法)
# Android onKeyDown监听返回键无效的解决办法
# Android悬浮球及全局返回功能的实现示例
# Android标题栏中添加返回按钮功能
# Android悬浮按钮点击返回顶部FloatingActionButton
# Android 自定义返回按钮的实例详解
# 两种
# 双击
# 在这里
# 就好
# 就把
# 这句
# 两下
# 很不好
# 大家多多
# 再按
# 则将
# 第三种
# 几种方法
# core
# angular
# Component
# ToastController
# Platform
# class
# pre
相关文章:
如何快速配置高效服务器建站软件?
Android自定义控件实现温度旋转按钮效果
如何在IIS中配置站点IP、端口及主机头?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
外贸公司网站制作哪家好,maersk船公司官网?
建站上传速度慢?如何优化加速网站加载效率?
建站之星2.7模板:企业网站建设与h5定制设计专题
,怎么在广州志愿者网站注册?
建站之星如何助力网站排名飙升?揭秘高效技巧
建站之星后台密码遗忘?如何快速找回?
如何在阿里云通过域名搭建网站?
,如何利用word制作宣传手册?
如何用PHP工具快速搭建高效网站?
网站制作免费,什么网站能看正片电影?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
高防服务器:AI智能防御DDoS攻击与数据安全保障
香港服务器如何优化才能显著提升网站加载速度?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
教学论文网站制作软件有哪些,写论文用什么软件
?
建站之家VIP精选网站模板与SEO优化教程整合指南
制作宣传网站的软件,小红书可以宣传网站吗?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
Python lxml的etree和ElementTree有什么区别
如何用花生壳三步快速搭建专属网站?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何通过多用户协作模板快速搭建高效企业网站?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
,南京靠谱的征婚网站?
官网网站制作腾讯审核要多久,联想路由器newifi官网
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
C#如何使用XPathNavigator高效查询XML
建站之星如何快速生成多端适配网站?
c# 在ASP.NET Core中管理和取消后台任务
建站之星安装需要哪些步骤及注意事项?
定制建站是什么?如何实现个性化需求?
如何将凡科建站内容保存为本地文件?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
建站之星免费模板:自助建站系统与智能响应式一键生成
制作网页的网站有哪些,电脑上怎么做网页?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
网站制作价目表怎么做,珍爱网婚介费用多少?
TestNG的testng.xml配置文件怎么写
在线制作视频的网站有哪些,电脑如何制作视频短片?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
网站企业制作流程,用什么语言做企业网站比较好?
家庭建站与云服务器建站,如何选择更优?
*请认真填写需求信息,我们会在24小时内与您取得联系。