-1

我想为我的 Android 应用程序使用AppAuth 。

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

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

有没有办法或任何示例示例来做同样的事情。

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

Zomato 应用程序”示例

在此处输入图像描述

4

1 回答 1

0

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

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

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

不幸的是,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'
于 2020-02-13T11:33:53.303 回答