如何从 Flutter 应用程序导航到网页? (OAuth)
How to navigate to a web page from within a flutter app? (OAuth)
我正在尝试构建一个使用 OAuth 连接到另一个网站上的用户帐户的 Flutter 应用程序。这需要导航到网站的 OAuth 页面,用户可以在其中输入他们的凭据,然后解析当用户 returns.
时发送回应用程序的代码
所以我的问题是:
- 如何导航到 OAuth 网页?
我发现我可以像这样导航到内部路线:
Navigator.of(context).pushNamed('/some_page');
但是如果我想转到像 https://coolsite.com/oauth/authorize
这样的外部页面怎么办?
如何 (a) 在本地网络浏览器中打开 URL,以及 (b) 使用 in-app 网络视图?
- 身份验证后我应该将用户重定向到什么 URL 以便他们返回到应用程序,我该如何解析响应?
好像有两种方法:
(a) 让用户被重定向到一个空白页面,其中包含 URL 中的授权代码和页面标题。如果使用此方法 - 我如何解析页面或 URL?
(b) 将用户重定向到某种方案,例如 my-dart-app://coolsite-oauth?code=xyz
。如果此方法 - 我如何注册该方案,并将 cool site-OAuth
映射到我在调用 new MaterialApp
或其他地方指定的路由?我将如何解析查询参数?
您可以使用 activity 服务触发导航:
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
我正在尝试构建一个使用 OAuth 连接到另一个网站上的用户帐户的 Flutter 应用程序。这需要导航到网站的 OAuth 页面,用户可以在其中输入他们的凭据,然后解析当用户 returns.
时发送回应用程序的代码所以我的问题是:
- 如何导航到 OAuth 网页?
我发现我可以像这样导航到内部路线:
Navigator.of(context).pushNamed('/some_page');
但是如果我想转到像 https://coolsite.com/oauth/authorize
这样的外部页面怎么办?
如何 (a) 在本地网络浏览器中打开 URL,以及 (b) 使用 in-app 网络视图?
- 身份验证后我应该将用户重定向到什么 URL 以便他们返回到应用程序,我该如何解析响应?
好像有两种方法:
(a) 让用户被重定向到一个空白页面,其中包含 URL 中的授权代码和页面标题。如果使用此方法 - 我如何解析页面或 URL?
(b) 将用户重定向到某种方案,例如 my-dart-app://coolsite-oauth?code=xyz
。如果此方法 - 我如何注册该方案,并将 cool site-OAuth
映射到我在调用 new MaterialApp
或其他地方指定的路由?我将如何解析查询参数?
您可以使用 activity 服务触发导航:
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