如何从flutter应用程序中导航到网页? (OAuth的)

时间:2015-11-12 23:10:06

标签: dart flutter

我正在尝试构建一个Flutter应用,该应用使用OAuth连接到另一个网站上的用户帐户。这需要导航到网站的OAuth页面,用户可以在其中输入凭据,然后解析用户返回时发送回应用程序的代码。

所以我的问题是:

1)如何导航到OAuth网页?

我发现我可以导航到这样的内部路线:

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

但是,如果我想转到https://coolsite.com/oauth/authorize等外部网页,该怎么办?

如何通过打开本地网络浏览器中的网址以及(b)使用应用内网络视图来执行此操作(<)?

2)我应该在验证后将用户重定向到哪个URL,以便他们返回应用程序,以及如何解析响应?

似乎有两种方式:

(a)让用户被重定向到一个空白页面,其中包含URL和页面标题中的授权码。如果这种方法 - 我如何解析页面或网址?

(b)将用户重定向到某种方案,例如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新的MaterialApp`或其他地方?我将如何解析查询参数?

1 个答案:

答案 0 :(得分:7)

您可以使用活动服务触发导航:

import 'package:flutter/services.dart';

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

目前没有办法在Flutter中接收导航,但这是我们想要添加的内容。我已创建此问题以跟踪此功能请求:https://github.com/flutter/flutter/issues/357