如何通过三步操作在ionic3中实现点击退出应用程序的功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计529个文字,预计阅读时间需要3分钟。
本例展示了如何在大家族分享中用Ionic3实现点击退出App程序的简单代码。代码分为三步:
1. 在tabs.ts文件中声明组件:
typescript@ViewChild('mainTabs') tabs: Tabs;
说明:声明tabs组件,用于后续使用。
2. 在App.vue或主组件中导入并使用:
typescriptimport { Component } from '@angular/core';import { Platform } from 'ionic-angular';import { Tabs } from './pages/tabs/tabs';
@Component({ templateUrl: 'app.'})export class MyApp { rootPage=Tabs;
constructor(platform: Platform) { platform.ready().then(()=> { // 退出App platform.registerBackButtonHandler(()=> { this.tabs.select(0); return false; }); }); }}
说明:注册返回按钮事件,当用户点击返回按钮时,将焦点移回到第一个tab。
3. 在Tabs页面中处理退出逻辑:
typescriptimport { Component } from '@angular/core';import { IonicPage, NavController, NavParams } from 'ionic-angular';
@IonicPage()@Component({ selector: 'page-tabs', templateUrl: 'tabs.'})export class TabsPage { tab1Root=FirstPage; tab2Root=SecondPage;
constructor(public navCtrl: NavController, public navParams: NavParams) {}
ionViewDidLoad() { console.log('ionViewDidLoad TabsPage'); }}
说明:设置两个tab的根页面,当用户点击退出时,会回到第一个tab。
本文实例为大家分享了ionic3点击退出app程序的具体代码,供大家参考,具体内容如下
其实也很简单。大概分为三步
1.tabs.ts文件需要声明一下
@ViewChild('mainTabs') tabs:Tabs;//声明tabs组件(<ion-tabs #mainTabs >)
2.app.component.ts文件
@ViewChild('myNav') nav: Nav;//声明根组件(<ion-nav #myNav [root]="rootPage">)
3.贴代码
platform.ready().then(()=>{ this.exitApp(); }) public backButtonPressed: boolean = false; exitApp() { this.platform.registerBackButtonAction(() => { //控制modal、系统自带提示框 let overlay = this.appCtrl._appRoot._overlayPortal.getActive() || this.appCtrl._appRoot._modalPortal.getActive(); if (overlay) { overlay.dismiss(); return; } let activeVC = this.nav.getActive(); let page = activeVC.instance; if (page.tabs) { let activeNav = page.tabs.getSelected(); if (activeNav.canGoBack()) { return activeNav.pop(); } else { return this.showExit(); } } if (page instanceof LoginPage) {//查看当前页面是否是登陆页面 this.showExit(); return; } this.appCtrl.getActiveNav().pop();//剩余的情况全部使用全局路由进行操作 }); } //双击退出函数 showExit() { if (this.backButtonPressed) { this.platform.exitApp(); } else { this.presentToast();//再按一次退出 this.backButtonPressed = true; setTimeout(() => { this.backButtonPressed = false; }, 2000) } } presentToast() { let toast = this.toastCtrl.create({ message: '再按一次退出应用', duration: 2000, position: 'top' }); toast.onDidDismiss(() => { console.log('Dismissed toast'); }); toast.present(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计529个文字,预计阅读时间需要3分钟。
本例展示了如何在大家族分享中用Ionic3实现点击退出App程序的简单代码。代码分为三步:
1. 在tabs.ts文件中声明组件:
typescript@ViewChild('mainTabs') tabs: Tabs;
说明:声明tabs组件,用于后续使用。
2. 在App.vue或主组件中导入并使用:
typescriptimport { Component } from '@angular/core';import { Platform } from 'ionic-angular';import { Tabs } from './pages/tabs/tabs';
@Component({ templateUrl: 'app.'})export class MyApp { rootPage=Tabs;
constructor(platform: Platform) { platform.ready().then(()=> { // 退出App platform.registerBackButtonHandler(()=> { this.tabs.select(0); return false; }); }); }}
说明:注册返回按钮事件,当用户点击返回按钮时,将焦点移回到第一个tab。
3. 在Tabs页面中处理退出逻辑:
typescriptimport { Component } from '@angular/core';import { IonicPage, NavController, NavParams } from 'ionic-angular';
@IonicPage()@Component({ selector: 'page-tabs', templateUrl: 'tabs.'})export class TabsPage { tab1Root=FirstPage; tab2Root=SecondPage;
constructor(public navCtrl: NavController, public navParams: NavParams) {}
ionViewDidLoad() { console.log('ionViewDidLoad TabsPage'); }}
说明:设置两个tab的根页面,当用户点击退出时,会回到第一个tab。
本文实例为大家分享了ionic3点击退出app程序的具体代码,供大家参考,具体内容如下
其实也很简单。大概分为三步
1.tabs.ts文件需要声明一下
@ViewChild('mainTabs') tabs:Tabs;//声明tabs组件(<ion-tabs #mainTabs >)
2.app.component.ts文件
@ViewChild('myNav') nav: Nav;//声明根组件(<ion-nav #myNav [root]="rootPage">)
3.贴代码
platform.ready().then(()=>{ this.exitApp(); }) public backButtonPressed: boolean = false; exitApp() { this.platform.registerBackButtonAction(() => { //控制modal、系统自带提示框 let overlay = this.appCtrl._appRoot._overlayPortal.getActive() || this.appCtrl._appRoot._modalPortal.getActive(); if (overlay) { overlay.dismiss(); return; } let activeVC = this.nav.getActive(); let page = activeVC.instance; if (page.tabs) { let activeNav = page.tabs.getSelected(); if (activeNav.canGoBack()) { return activeNav.pop(); } else { return this.showExit(); } } if (page instanceof LoginPage) {//查看当前页面是否是登陆页面 this.showExit(); return; } this.appCtrl.getActiveNav().pop();//剩余的情况全部使用全局路由进行操作 }); } //双击退出函数 showExit() { if (this.backButtonPressed) { this.platform.exitApp(); } else { this.presentToast();//再按一次退出 this.backButtonPressed = true; setTimeout(() => { this.backButtonPressed = false; }, 2000) } } presentToast() { let toast = this.toastCtrl.create({ message: '再按一次退出应用', duration: 2000, position: 'top' }); toast.onDidDismiss(() => { console.log('Dismissed toast'); }); toast.present(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

