2015-11-12 13 views
8

Próbuję stworzyć aplikację Flutter, która używa protokołu OAuth do połączenia z kontem użytkownika w innej witrynie. Wymaga to przejścia do strony OAuth witryny, na której użytkownik może wprowadzić swoje poświadczenia, a następnie analizowania kodu, który jest wysyłany z powrotem do aplikacji po powrocie użytkownika.Jak mogę przejść do strony internetowej z aplikacji Flutter? (OAuth)

Więc moje pytania to:

1) W jaki sposób można przejść do strony internetowej OAuth?

I zorientowali się, że mogę poruszać się na trasie wewnętrznej tak:

Navigator.of(context).pushNamed('/some_page'); 

Ale co, jeśli chcę, aby przejść do strony zewnętrznej jak https://coolsite.com/oauth/authorize?

W jaki sposób mogę to zrobić (a) otwierając adres URL w lokalnej przeglądarce internetowej i (b) z widokiem WWW w aplikacji?

2) Do jakiego adresu URL należy przekierować użytkownika po uwierzytelnieniu, aby mógł wrócić do aplikacji i jak przeanalizować odpowiedź?

Wydaje istnieją 2 sposoby:

(a) Niech użytkownik zostanie przekierowany do pustej strony z kodem autoryzacji w adresie URL i tytuł strony. Jeśli ta metoda - jak analizować stronę lub URL?

(b) Przekieruj użytkownika do jakiegoś programu, na przykład my-dart-app://coolsite-oauth?code=xyz". If this method - how do I register the scheme, and would coolsite-oauth map to a route that I specify when calling new MaterialApp` lub gdzieś indziej? I jak przeanalizować parametr zapytania?

+0

Czy jest to związane z Twoim pytaniem https://github.com/flutter/flutter/pull/351? –

Odpowiedz

6

Można wywołać nawigacji przy użyciu usługi Aktywność:

import 'package:flutter/services.dart'; 

void launchUrl(String url) { 
    Intent intent = new Intent() 
    ..action = 'android.intent.action.VIEW' 
    ..url = url; 
    activity.startActivity(intent); 
} 

Nie ma obecnie sposób, aby otrzymać nawigację w trzepotanie, ale to jest coś chcemy dodać. Stworzyłem ten problem, aby śledzić tę prośbę o funkcję: https://github.com/flutter/flutter/issues/357

Powiązane problemy