Dans Ionic 4 Je n'ai pas trouvé de moyen approprié de remplacer la page racine par défaut après l'écran de démarrage. Voici la configuration par défaut.
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
});
J'ai trouvé la solution. Créez d'abord la page que vous souhaitez créer en tant que page racine
ionic generate page pagename
Dans app.component.ts
import { Router } from '@angular/router';
A l'intérieur du constructeur ajouter
private router : Router
puis initialiser
initializeApp() {
this.platform.ready().then(() => {
this.router.navigateByUrl('pagename');
this.statusBar.styleDefault();
this.splashScreen.hide();
});
}
Je ne suggérerais pas d'utiliser cette méthode.
bien que cela fonctionne, Ionic 4 repose désormais sur des modules natifs Angular, cela inclut le routeur Angular.
pour définir une page racine, vous devrez définir les itinéraires de votre application dans le module routeur.
si vous ne savez pas comment procéder, veuillez cliquer ici pour consulter les documents angular
lorsque vous créez un projet avec le ionic cli, le module de routage est ajouté automatiquement pour vous.
Voici comment les implémenter dans votre cas;
étape 1:
dans votre index.html
vérifier si le <base href="/" >
a été ajouté au fichier index.html, s'il n'est pas là, veuillez l'ajouter.
étape 2:
dans votre fichier app.module.ts
en haut du fichier, importez le routerModule
import { RouterModule, Routes } from '@angular/router';
configurer les itinéraires de vos applications, en supposant que vous avez déjà créé une page nommée 'home'
const routes: Routes = [
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
{
path: 'home',
loadChildren: './home/home.module#HomePageModule'
}
];
ajouter le RouterModule au tableau des importations du NgModule
@NgModule({
imports: [RouterModule.forRoot(routes)],
...
})
étape 3:
dans votre app.component.html
ajoutez la sortie du routeur à app.component.html <ion-router-outlet></ion-router-outlet>
Si vous avez un Angular Router, voici la procédure:
dans app.component:
Ajouter des importations:
import {NavController} from '@ionic/angular';
import {ActivatedRoute} from '@angular/router';
// in the constructor:
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
private route: ActivatedRoute,
private navController: NavController,
...
) {
this.initializeApp();
....
if ( this.route.snapshot['_routerState'].url !== '/theRoute') {
this.navController.navigateRoot('/theRoute')
.then();
}
....
C'est tout.
Cela valide votre logique et redirige, mais, si vous êtes sur la même page, ne redirigez pas.
Dans Ionic 3, nous avions les méthodes Push, pop & setRoot dans NavController for Routing utilisées comme suit:
this.navCtrl.Push('list');
this.navCtrl.pop('home');
this.navCtrl.setRoot('HomePage');
Celles-ci sont désormais remplacées par
this.navCtrl.navigateForward('/list');
this.navCtrl.navigateBack('/home');
this.navCtrl.navigateRoot('/details');