Ionic 3を使用してPWA(Tabベース)を開発しました。アンドロイドブラウザでハードウェアの戻るボタンまたはブラウザの戻るボタンを押すまでうまくいきます。ホーム画面から起動している場合は、戻るボタンを押すとアプリが終了します。アプリがアンドロイドのクロムで実行されている場合(Chromeでのみテスト済み)、ハードウェアの背面またはブラウザの背面には、以前に訪問したページではなく、最初のページが読み込まれます。どのようにイオン3 PWAでこれらのイベントを処理するには?Ionic3を使用して開発したPWAのハードウェアバックボタンを処理する方法
すべてのページに遅延ロードを使用しています。私がこれまで試したどのような
:jgw96さんのコメントhereを1として
を、私はIonicPageナビゲーション自体を処理しますと思いました。しかし、それは動作していません。
使用したplatform.registerBackButtonActionですが、PWAでは使用できません。
下記のWebrusterの提案に従って、回答がapp.component.tsで試されました。しかし、変化はありません。
投稿コード:
import { Component, ViewChild } from '@angular/core';
import { Nav, Platform, AlertController, Alert, Events, App, IonicApp, MenuController } from 'ionic-angular';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
@ViewChild(Nav) nav: Nav;
rootPage:any = 'TabsPage';
constructor(public platform: Platform,
public alertCtrl: AlertController, public events: Events,
public menu: MenuController,
private _app: App,
private _ionicApp: IonicApp) {
platform.ready().then(() => {
this.configureBkBtnprocess();
});
}
configureBkBtnprocess() {
if (window.location.protocol !== "file:") {
window.onpopstate = (evt) => {
if (this.menu.isOpen()) {
this.menu.close();
return;
}
let activePortal = this._ionicApp._loadingPortal.getActive() ||
this._ionicApp._modalPortal.getActive() ||
this._ionicApp._toastPortal.getActive() ||
this._ionicApp._overlayPortal.getActive();
if (activePortal) {
activePortal.dismiss();
return;
}
if (this._app.getRootNav().canGoBack())
this._app.getRootNav().pop();
};
this._app.viewDidEnter.subscribe((app) => {
history.pushState (null, null, "");
});
}
}
}
ので、あなたは何を期待している、私は、ハードウェアの戻るボタンでブラウザやアプリで何が起こっすべきか意味ですか? – Webruster
A-> B-> Cのようなページをナビゲートすると、CのバックプレスがBにポップアップします。しかし、私の場合、Aは新しいインスタンスのようにリロードしています。 –
あなたの試した質問を更新してください – Webruster