ionic3最小化並且監控到前臺執行和後臺執行
1.安裝外掛
ionic cordova plugin add cordova-plugin-appminimize
npm install --save @ionic-native/app-minimize
2.建立BackButtonProvider
import { AppMinimize } from '@ionic-native/app-minimize';
export class BackButtonProvider {
//控制硬體返回按鈕是否觸發,預設false
backButtonPressed: boolean = false;
//建構函式 依賴注入
constructor(public platform: Platform,
public appCtrl: App,
public toastCtrl: ToastController, private appMinimize: AppMinimize) { }
//註冊方法
registerBackButtonAction(tabRef: Tabs): void {
//registerBackButtonAction是系統自帶的方法
this.platform.registerBackButtonAction(() => {
//獲取NavController
let activeNav: NavController = this.appCtrl.getActiveNavs()[0];
//如果可以返回上一頁,則執行pop
if (activeNav.canGoBack()) {
activeNav.pop();
} else {
if (tabRef == null || tabRef._selectHistory[tabRef._selectHistory.length - 1] === tabRef.getByIndex(0).id) {
//執行退出
this.appMinimize.minimize();
} else {
//選擇首頁第一個的標籤
tabRef.select(0);
}
}
});
}
}
3.在tabs.html頁面,如下設定
<ion-tabs #myTabs>
4.在tabs.ts頁面
@ViewChild('myTabs') tabRef: Tabs;
constructor(public backButtonService: BackButtonProvider,
private platform: Platform) {
this.platform.ready().then(() => {
this.backButtonService.registerBackButtonAction(this.tabRef);
});
}
5.此處需要注意的是,目前就可以退出最小化了。但是二級頁面現在會退出最小化,我們需要如下設定,
constructor(public navCtrl: NavController, public navParams: NavParams, private platform: Platform, public backButtonService: BackButtonProvider) {
this.platform.ready().then(() => {
this.backButtonService.registerBackButtonAction(null);
});
}
6.最後說下如何監聽軟體是在執行。還是已經最小化了(後臺執行)。
我們需要app.component.ts裡設定,如下:
constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
platform.ready().then(() => {
document.addEventListener("resume", () => {
statusBar.styleDefault();
splashScreen.hide();
alert("進入,前臺展示"); //進入,前臺展示
}, false);
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
document.addEventListener("pause", () => {
alert("退出,後臺執行"); //退出,後臺執行
}, false);
});
}
相關文章
- linux程式前臺-後臺執行Linux
- C#.Net前臺執行緒與後臺執行緒的區別C#執行緒
- 後臺執行
- Oracle“並行執行”——監控檢視Oracle並行
- shell後臺執行
- 後臺執行MongoDBMongoDB
- 後臺執行以及保持程式在後臺長時間執行
- Linux 下後臺執行和按照守護程式方式後臺執行的坑Linux
- 執行python指令碼後臺執行Python指令碼
- 如何在後臺執行 Linux 命令並且將程式脫離終端Linux
- flutter 寫後臺系統,執行到windowsFlutterWindows
- Linux後臺執行Linux
- 後臺執行緒(daemon)執行緒
- windows redis 後臺執行WindowsRedis
- Jboss 後臺執行模式模式
- 指令碼後臺執行指令碼
- scp 在後臺執行
- 編碼:執行緒執行監控執行緒
- 將程式在後臺執行和殺掉後臺的程式
- java--多執行緒之後臺執行緒Java執行緒
- Linux 後臺執行命令Linux
- jenkins後臺程式執行Jenkins
- linux命令後臺執行Linux
- linux後臺執行-nohupLinux
- 作業控制(後臺執行)
- windows的nohup後臺執行Windows
- java -jar 在後臺執行和關閉JavaJAR
- linux後臺執行和關閉、檢視後臺任務Linux
- dotnet 後臺執行緒設定 X11 視窗最小化執行緒
- mysql後臺執行緒詳解MySql執行緒
- Mac Redis 服務後臺執行MacRedis
- Linux jar包 後臺執行LinuxJAR
- 後臺執行SQL語句(oracle)SQLOracle
- Linux 命令的後臺執行Linux
- Android Oreo 後臺執行限制Android
- python指令碼後臺執行Python指令碼
- 後臺執行主要T-CODE
- run sql in the backgroud 後臺執行sqlSQL