【问题标题】:Is it possible for flutter to get the browser url when a url is launched in an in-app-browser?在应用内浏览器中启动 url 时,flutter 是否有可能获取浏览器 url?
【发布时间】:2019-11-02 12:08:18
【问题描述】:

我正在尝试将 FitbitAPI 连接到我的 flutter-firebase 应用程序。但是,每当我验证我的帐户时,它都不会重定向回我的应用程序。我使用了隐式授权流程,因为我没有使用服务器来为我的后端供电。但是,我没有办法获取写入浏览器 url 的令牌。这方面的一个例子是:

https://MYFIREBASEPROJECT.firebaseapp.com/__/auth/handler#access_token=eyJhbGciOiJIUzI1NiJ9.egfhwerqwjehqwkjehkashdaadadsadybG9jIHJ3ZW123123123sdsadsaasdasdagcnBybyByc2xlIiwiZXhwIjoxNTczMjk5ODQ2LCJpYXQiOjE1NzI2OTUwNDZ9.axlEiYsVicy6l-aEbphcqZlr3bHXUxq6hV2ky5o_3qw&user_id=7SFL86&scope=social+location+weight+nutrition+activity+sleep+settings+heartrate+profile&token_type=Bearer&expires_in=604800

我想要一种从应用内网络浏览器获取最后一个 url 的方法。我使用的应用内浏览器包是web_browser

【问题讨论】:

    标签: firebase flutter dart oauth fitbit


    【解决方案1】:

    有了那个包,没有。

    您可以使用https://pub.dev/packages/flutter_webview_plugin,它允许您在您的应用程序中启动一个网络视图,并完全控制它。

    或者您可以使用您的包或https://pub.dev/packages/url_launcher 来启动您无法控制的外部浏览器,但重定向到打开您的应用程序的深层链接并使用https://pub.dev/packages/uni_links 处理它

    所以这两种方法都可以

    编辑:

    深层链接如何工作的简要说明。

    大多数 url 以“http://”开头,它告诉浏览器打开一个带有 url 域的网页。但是,如果您使用 url 的其他开头,浏览器会做不同的事情。在 android 中,如果您在浏览器 url 中键入 whatsapp://app 并启动它,它将启动 whatsapp 应用程序。您的应用程序 oauth 也可以这样做。您唯一需要实现它就是配置您的 android 应用程序。简短的概念可以在here 找到,但是要使用flutter 与android 应用deeplink 交流你需要uni_links,他们还在他们的包页面中提供了一个教程。可以找到flutter的教程HERE

    【讨论】:

    • 谢谢,我可以试试网络视图,这样我就可以动态地进行 API 调用。您能否提供有关深度链接如何工作的更多信息?这对我来说是一个新概念。谢谢你的回答!
    猜你喜欢
    • 1970-01-01
    • 2018-08-05
    • 2017-05-10
    • 2014-12-18
    • 2013-08-23
    • 2014-03-24
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多