Angular - пытается использовать глубокие ссылки, но открывается только приложение, маршрутизация не работает - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь использовать глубокие ссылки, но открывается только приложение.Маршрутизация не работает.

Вот мой код:

import { Component, ViewChild } from ‘@angular/core’;
import { App, Platform, Nav, NavController } from ‘ionic-angular’;
import { StatusBar } from ‘@ionic-native/status-bar’;
import { SplashScreen } from ‘@ionic-native/splash-screen’;
import { Deeplinks } from ‘@ionic-native/deeplinks’;
import { HomePage } from ‘…/pages/home/home’;
import { HarryPage } from ‘…/pages/harry/harry’;

@Component({
    templateUrl: ‘app.html’
})

export class MyApp {
    @ViewChild(‘myNav’) nav: Nav;
    rootPage:any = HomePage;

    constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen,private deeplinks: Deeplinks) {
        platform.ready().then(() => {
            statusBar.styleDefault();
            splashScreen.hide();
        });
        this.deeplinks.routeWithNavController( this.nav, {
            ‘/harry’: HarryPage,
            ‘/’ :HomePage
        }).subscribe( (match)=>{
                console.log(match.$route);
                // alert(JSON.stringify(match))
            }, (noMatch)=>{
                // alert(JSON.stringify(noMatch));
            })
    }
}

Всякий раз, когда я пытаюсь получить доступ к маршруту / harry, открывается только домашняя страница.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

работает, если вы помещаете тот же код в корневую страницу, если вы следуете их документации, тогда ничего не получится.

0 голосов
/ 04 октября 2018

Попробуйте deeplinks логика внутри platform.ready() обратный вызов.

      @ViewChild(Nav) nav:Nav;

      constructor(private deeplinks: Deeplinks) {

        platform.ready().then(() => {

         this.deeplinks.routeWithNavController(this.nav, {
            '/harry': HarryPage,
            '/' : HomePage

          }).subscribe(match => {

            console.log('Successfully matched route', JSON.stringify(match, null, 2));
          }, nomatch => {

            console.error('Got a deeplink that didn\'t match', nomatch);
          });
        });  
 }
...