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

Я хочу открыть свой компонент в приложении Android (Nativescript) по ссылке в электронном письме, то есть нажмите здесь, чтобы сбросить пароль

У меня есть такая ссылка в электронном письме:

http://secsystem.domain.tk/v1/resetPassword/11E8FC9

Поэтому, когда я нажимаю ссылку в своем мобильном браузере, мне нужно приложение, запущенное в компоненте resetPassword.

Я использую следующий код:

AndroidManifest.xml

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" android:host="secsystem.domain.tk" android:path="/v1/resetPassword"></data> 
        </intent-filter>

Этот код хорошо работает только в этом URL: http://secsystem.domain.tk/v1/resetPassword

Я хочу работать в этом URL: http://secsystem.domain.tk/v1/resetPassword/11E8FC9

В routing.ts я пишу этот код:

{ path: 'v1/resetPassword/:id', component: ResetPassIdComponent },

Я хочу открыть этот компонент, когда нажимаю на ссылку.

Есть ли какое-то решение для этого?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы должны использовать android:pathPattern, когда путь имеет динамический параметр.

Пример

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" android:host="secsystem.domain.tk" android:path="/v1/resetPassword/.*"></data> 
 </intent-filter>

До сих пор это все для того, чтобы Android понимал, что долженоткройте это приложение, когда этот конкретный шаблон URL совпадает.Angular тут не при чем.Если вы хотите перейти к определенному компоненту, когда приложение открывается с этим шаблоном URL-адреса, вы должны обработать его вручную.

Установить плагин nativescript-urlhandler и запросить URL-адрес, который использовался для открытияприложение в компоненте приложения и соответственно инициируйте навигацию в маршрутизаторе.

import { Component, OnInit } from "@angular/core";
import { handleOpenURL, AppURL } from 'nativescript-urlhandler';

@Component({
  selector: "gr-main",
  template: "<page-router-outlet></page-router-outlet>"
})
export class AppComponent {
    constructor() {
    } 

    ngOnInit(){
        handleOpenURL((appURL: AppURL) => {
            console.log('Got the following appURL', appURL);
        });
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...