ionic3 安卓硬件返回
platform.ready().then(() => {
this.platform.registerBackButtonAction(() => {
let activePortal = this.ionicApp._modalPortal.getActive() ||this.ionicApp._overlayPortal.getActive();
console.log(activePortal)
let loadingPortal = this.ionicApp._loadingPortal.getActive();
if (activePortal) {
//其他的关闭 activePortal.dismiss().catch(() => { }); activePortal.onDidDismiss(() => { }); return; } if (menuCtrl.isOpen()) {
menuCtrl.close(); console.log("closing menu"); return; } if (loadingPortal) { //loading的话,返回键无效 return; }
//获取NavController if(this.keyboard.isOpen()){ this.keyboard.close(); return; }
let activeNav: NavController = this.appCtrl.getActiveNav();
console.log(this.appCtrl); console.log(activeNav)
//如果可以返回上一页,则执行pop
if (activeNav.canGoBack()) { activeNav.pop(); } else {
//执行退出 this.showExit();
} });
});
private alertT(content){
this.alert = this.alertCtr.create({
// spinner: 'hide',
title:'' ,
enableBackdropDismiss:false,
// duration: 3000
});
this.alert.present();
}
//退出应用方法
private showExit(): void {
//如果为true,退出
if (this.backButtonPressed) {
this.platform.exitApp();
} else {
//第一次按,弹出Toast
if (localStorage.getItem("language") === 'zh') {
this.commonUtils.showToast("再按一次退出应用", 2000)
} else {
this.commonUtils.showToast("Press again to exit the app", 2000)
}
// this.toastCtrl.create({
// message: '再按一次退出应用',
// duration: 2000,
// position: 'bottom'
// }).present();
//标记为true
this.backButtonPressed = true;
//两秒后标记为false,如果退出的话,就不会执行了
setTimeout(() => this.backButtonPressed = false, 2000);
}
}
主要解决的问题是:modal 的关闭
代码:
let activePortal = ionicApp._loadingPortal.getActive() ||
ionicApp._modalPortal.getActive() ||
ionicApp._toastPortal.getActive() ||
ionicApp._overlayPortal.getActive(); if (activePortal) {
ready = false;
activePortal.dismiss();
activePortal.onDidDismiss(() => { ready = true; }); Logger.log("handled with portal");
return;
} if (menuCtrl.isOpen()) {
menuCtrl.close(); Logger.log("closing menu");
return;
}
另外本来 这块内容是写再指令里的发现 指令里不能用ionicApp 这个方法,最好把内容放到初始化位置。
ionic3 安卓硬件返回的更多相关文章
- ionic2 处理android硬件返回按钮
问题 注册安卓硬件返回按钮事件是必须的,因为用户不小心点击了返回按钮就退出app体验很不好,所以有几种方法: 1.实现按返回键最小化应用(最小化应用需要装cordova-plugin-appminim ...
- 阻止安卓实体返回键后退的网页js实现
提供两种解决方法吧,都是网上来的,侵权删,毕竟我等只是搞后端的-- 第一种方法: // 阻止安卓实体键后退 // 页面载入时使用pushState插入一条历史记录 history.pushState( ...
- vue 用huilder打包APP时,安卓按返回键就退出App改为按两次再退出App
做vue项目时,用Hbuilder打包APP,在安卓下按返回键就是退出了APP,百度了下.都是使用到MUI来解决的,自己也记录下. 在main.js里面引入mui.js并使用. import mui ...
- ionic3带参数返回原来页面
最近用ionic3+angular4做项目.我遇到了个问题,我返回原来页面时一般都会调用this.navCtrl.pop()方法,但这个方法不能携带参数.怎么办? 可以写个回调方法. 我在a页面定义个 ...
- vue 移动端禁用安卓手机返回键
//禁止手机返回键 下面这段代码直接复制在index.html中,可以生效// $(document).ready(function() { if (window.history &&a ...
- ionic3安卓版release发布
1.进入到项目根目录 keytool -genkey -v -keystore your-full-keystore-name.keystore -alias your-lias-name -keya ...
- react native 安卓home返回键页面刷新
import { withNavigationFocus } from 'react-navigation'; class Warngreete extends React.Component { c ...
- ionic3安卓平台引用高德地图
1.前置条件 第一步,注册高德开发者:第二步,去控制台创建应用:第三步,获取Key. 2.打开src目录下的index.html, 在head标签中添加以下代码,引入js: <script ty ...
- android硬件返回
1.第一种 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { //点击回退键 if(Ke ...
随机推荐
- Linux scp sudo
command line - scp to remote server with sudo - Super Userhttps://superuser.com/questions/138893/scp ...
- monkey日志管理
日志管理作用 Monkey日志管理是Monkey测试中非常重要的一个环节,通过日志管理分析,可以获取当前测试对象在测试过程中是否会发生异常,以及发生的概率,同时还可以获取对应的错误信息,帮助开发定位和 ...
- [模板] 快速傅里叶变换/FFT/NTT
简介 FFT是多项式乘法的一种快速算法, 时间复杂度 \(O(n \log n)\). FFT可以用于求解形如\(C_i = \sum_{j=0}^i A_jB_{i-j}\)的式子. 如果下标有偏差 ...
- 七、Java多人博客系统-2.0版本-docker部署
docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...
- 基于scrapy-redis的分布式爬虫
一.介绍 1.原生的scrapy框架 原生的scrapy框架是实现不了分布式的,其原因有: 1. 因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls ...
- HashMap底层实现原理
HashMap底层实现 HashMap底层数据结构如下图,HashMap由“hash函数+数组+单链表”3个要素构成 通过写一个迷你版的HashMap来深刻理解 MyMap接口,定义一个接口,对外暴露 ...
- Short But Scary 解题报告
Short But Scary 正解的离线分治+虚树的做法太神奇...搞不到 搞一个菜一点的ddp写写,结果调了200年,下次一定写树剖不写lct了,太难调了... 大概就是按sub2那样维护 你每个 ...
- Linux-安装Windows字体
Linux 服务器安装Windows字体 直接上步骤: Windows字体包下载链接:https://pan.baidu.com/s/1ks9a70snHo02CTuqTrQhhg 提取码:7aw5 ...
- java.util.ConcurrentModificationException异常原因及解决方法
在java语言中,ArrayList是一个很常用的类,在编程中经常要对ArrayList进行删除操作,在使用remove方法对ArrayList进行删除操作时,报java.util.Concurren ...
- DirectX11 With Windows SDK--01 DirectX11初始化
前言 由于个人觉得龙书里面第4章提供的Direct3D 初始化项目封装得比较好,而且DirectX SDK Samples里面的初始化程序过于精简,不适合后续使用,故选择了以Init Direct3D ...