【问题标题】:AppAuth AuthenticationAppAuth 身份验证
【发布时间】:2020-02-13 10:03:56
【问题描述】:

我想在我的 Android 应用程序中使用 AppAuth

但根据那里的文档,他们提到“由于可用性和安全原因,明确不支持 WebView”。

我需要在应用程序内部进行身份验证,并且由于我们的应用程序要求,我不想重定向到手机上的某些浏览器。

有没有办法或任何示例可以做到这一点。

我看到 Play 商店中有很多应用程序,这些应用程序通过 Google、Facebook 进行身份验证,而不是重定向到默认浏览器。它不会重定向,而是在当前活动顶部打开弹出窗口并进行身份验证。

Zomato Application”示例

【问题讨论】:

    标签: android appauth


    【解决方案1】:

    这是一个依赖于浏览器的解决方案,但它会在您的应用程序中:

    最近我不得不做类似的事情,我需要在我的应用程序中验证一个使用 webview 完成的评论系统,我还希望在应用程序内部进行验证。

    经过大量研究,我得出的结论是,在不放弃 web 视图的情况下执行此操作的最简单方法是让浏览器验证用户的访问权限,而“在我的应用程序内”进行此验证的解决方案是使用“ Chrome 自定义选项卡”,它允许在我的应用程序中打开一个 google chrome 选项卡,我开始在 Chrome 的选项卡中打开 cmets 系统的身份验证页面。

    不幸的是,webview 在某些情况下效率低下,但这对某些人来说可能是一种解决方案,就像对我一样,希望对您有所帮助。

    要在我向 shouldOverrideUrlLoading 添加“Intent”时启动 Chrome 选项卡,下面是我的代码示例。

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if  (url.contains("#comments")){
        Uri uri = Uri.parse(url);
        CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
        builder.build().launchUrl(PostActivity.this, uri);
        return true;
        }
        else {
        view.loadUrl(url);
        return true;
        }
    }

    在 Gradle 应用程序中:

    implementation 'androidx.browser:browser:1.3.0-alpha01'
    

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2018-02-24
      • 2015-04-29
      • 2010-10-05
      • 2013-10-30
      相关资源
      最近更新 更多