Как ориентироваться с помощью nativescript-urlhandler - PullRequest
0 голосов
/ 06 июля 2018

У меня есть приложение Javascript Nativescript (т. Е. Без Angular, Vue или typcript), что я хочу сделать, это получить текст с глубокой ссылкой в ​​мое приложение, получить ссылку и затем перейти к конкретная страница.

Я следовал документам nativescript-urlhandler и в iOS могу получить URL-адрес, но я не знаю, что с ним делать, когда он у меня есть. То есть в моем файле app.js у меня есть:

handleOpenURL(function(appURL) {
  console.log('Got the following appURL', appURL);
});

То, что я хочу сделать отсюда, обычно будет

frame.topmost().navigate(navigationOptions);

вызов, но как я могу получить viewModel приложения для получающейся страницы, так как она загружается main-page.js (используя стандартный шаблон). То есть такие навигационные запросы всегда делаются из приложения, где viewModel уже установлена, но еще не установлено в app.js.

Я искал примеры кода, но ничего не нашел с прямым NativeScript, поэтому задаю вопрос в стих StackOverflow. Любая помощь или понимание приветствуются!

1 Ответ

0 голосов
/ 07 июля 2018

Я смог заставить это работать. Да,

frame.topmost().navigate(navigationOptions);

работает. Я создал свой собственный экземпляр viewModel и установил его в качестве связующего контекста, например,

handleOpenURL(function (appUrl) {

  var viewModel = createViewModel(); // create own instance of viewModel
  viewModel.helpReq = parseUrl(appUrl.toString()); // add data from URL to viewModel

    var navigationOptions = {
      moduleName: './views/help-req-page',
      context: { bindingContext: viewModel }
    }
    frame.topmost().navigate(navigationOptions);
}

Где parseUrl (), как и ожидалось, анализирует URL и создает объект из различных компонентов.

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

У меня это работает на iOS; Я еще не пробовал Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...