content: Angular "Exiting the App" example exits from pages nested under ion-tabs
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
- Type d'issue
- Documentation
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- angular, typescript
- Domaine
- documentation
Piste de recherche
Lis docs/developing/hardware-back-button.mdx et versioned_docs/version-v8/developing/hardware-back-button.mdx, puis compare les exemples d’onglets Angular au comportement signalé pour les pages imbriquées. Mets à jour les deux exemples et la phrase qui les accompagne sur l’interrogation de IonRouterOutlet avec @ViewChild afin qu’ils utilisent le flux NavController.pop() suggéré. Le travail est terminé lorsque les deux versions expliquent et montrent la navigation arrière dans les piles d’onglets avant de quitter à la racine.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
URL
https://ionicframework.com/docs/developing/hardware-back-button#exiting-the-app
Issue Description
The Angular examples under "Exiting the App" query the root IonRouterOutlet with @ViewChild and exit when canGoBack() is false. In an app that uses ion-tabs, pages inside a tab are stacked in the tab's own outlet, so the root outlet's stack only ever holds the tabs page and canGoBack() is always false. On a page such as /tabs/home/detail, pressing the hardware back button exits the app instead of going back to /tabs/home.
Measured on @ionic/angular 9.0.9:
| Layout, page | Root outlet canGoBack() |
NavController.pop() resolves |
Example |
|---|---|---|---|
| Flat, one page deep | true | true | stays |
| Flat, root | false | false | exits |
Tabs, /tabs/home/detail |
false | true | exits (wrong) |
Tabs, /tabs/home |
false | false | exits |
NavController.pop() walks from the active outlet up through its parents, so its result is the reliable signal. Suggested replacement for both Angular tabs (import from @ionic/angular/lazy for the modules example):
import { Component, inject } from '@angular/core';
import { NavController, Platform } from '@ionic/angular';
import { App } from '@capacitor/app';
@Component({ ... })
export class AppComponent {
private platform = inject(Platform);
private navCtrl = inject(NavController);
constructor() {
this.platform.backButton.subscribeWithPriority(1, async () => {
const popped = await this.navCtrl.pop();
if (!popped) {
App.exitApp();
}
});
}
}
Priority 1 runs before the built-in navigation handler (priority 0) and after menus and overlays (99 and 100), so it takes over the back navigation itself. The sentence about querying IonRouterOutlet with @ViewChild would need to change with it.
Both docs/developing/hardware-back-button.mdx and versioned_docs/version-v8/developing/hardware-back-button.mdx carry the same example.
Reported in ionic-team/ionic-framework#31598.
- Langage dominant
- MDX
- Étoiles
- 620
- Forks
- 3.2k
- Merge moyen
- 15 h 17 min
- PR mergées (30 j)
- 52
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ionic-team/ionic-docs
-
content
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
ionic-team/ionic-docs#4802 ·
Les mainteneurs répondent en général sous 1 jour
-
content: sheet modal docs should explain how to keep interactive content from dragging the sheetOuvertecontent
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
ionic-team/ionic-docs#4765 ·
Les mainteneurs répondent en général sous 1 jour
-
content
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
ionic-team/ionic-docs#4705 ·
Les mainteneurs répondent en général sous 1 jour
-
content package: angular
Difficulté 2/5 Une demi-journée Accessibilité débutants 78/100
ionic-team/ionic-docs#4702 ·
Les mainteneurs répondent en général sous 1 jour
-
triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 80/100
ionic-team/ionic-docs#4546 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de ionic-team/ionic-docs
Issues similaires
-
Liens externes cassésOuverte
Difficulté 1/5 1-3 heures Accessibilité débutants 66/100
betagouv/conseillers-entreprises#4770 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
awsdocs/amazon-eks-user-guide#1257 ·
-
Difficulté 1/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
An improved changelogOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
Les mainteneurs répondent en général sous 1 jour
-
status:untriaged
Difficulté 1/5 Moins d'une heure Accessibilité débutants 86/100
midnightntwrk/servicedesk#275 ·
Les mainteneurs répondent en général sous 1 jour