这是一个取决于浏览器的解决方案,但它将在您的应用程序中:
最近我不得不做类似的事情,我需要在我的应用程序中验证一个使用 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'