2015-04-26 4 views
3

Я использую пакет Метерик, чтобы запустить ионный в моем приложении метеорита. Я хотел бы использовать https://github.com/EddyVerbruggen/Custom-URL-scheme (плагин nl.x-services.plugins.launchmyapp) в моем приложении. На самом деле я использую его, но он работает неправильно.Как я могу использовать launchmyapp с Meteor для ссылки для проверки-электронной почты?

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

Ссылка, которая отправляется, выглядит следующим образом.

myappname://verify-email/longtokenidhere1212332 

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

Обновление 1:

У меня это почти работает. Я добавил handleOpenURL как глобальная функция, как показано ниже

Meteor.startup(function() { 
    handleOpenURL = function handleOpenURL(url) { 
     var token = url.replace("myappname://verify-email/", ""); 
     console.log("Token: " + token); 
     Router.go('/verify-email/', {"paramToken": token}); 
    } 
}); 

Теперь я вижу маркер печати на консоль.

Но когда он маршрутизируется, я получаю маршрут не найденной страницы. Как распечатать текущий URL-адрес с консоли, чтобы узнать, попадаю ли я на правильный полный URL-адрес? Я попробовал window.URL, но это печатает объект URLConstructor().

ответ

1

«/ verify-email» - это не железный маршрут маршрутизатора; его запекают в метеор.

Таким образом, вместо Router.go(), вы можете сделать вызов Accounts.verifyEmail от клиента, как это:

Meteor.startup(function() { 
    handleOpenURL = function handleOpenURL(url) { 
     var token = url.replace("myappname://verify-email/", ""); 
     console.log("Token: " + token); 
     // mark this client's email as verified by using the token 
     Accounts.verifyEmail(token, 
      function(error){ 
       if (error) { 
        console.log("email not verified"); 
       } else { 
        console.log("email verified successfully!"); 
       } 
      } 
     ); 
    } 
}); 
+0

Спасибо за это. Я попробую это точно. – JoshJoe