当前状态是什么,您能否让 Android webView(不是浏览器/Chrome 自定义选项卡)解释带有自定义 url 方案的链接,例如“bankid:///?autostarttoken=xxxx-xxxxc&redirect=https://...”
这里的预期行为是加载链接时应该打开 BankID 应用程序 - 改为获取“err_unknown_url_scheme”。有什么解决方法吗?还是使用 Intent 的唯一方法?
尝试使用 Intent 如下,它可以工作,但是重定向参数 url 出现问题,这会打开不需要的浏览器。将其替换为 app id/null 以留在 webView/app 中,但随后无法在 webView 中获取预期的回调 url。
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
if(!url.startsWith("http") && !url.startsWith("https")) {
Uri newUri = replaceUriParameter(Uri.parse(url),
"redirect", BuildConfig.APPLICATION_ID);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(newUri);
startActivityForResult(intent, START_ACTIVITY_FOR_RESULT_LOGIN);
view.reload();
return true;
}
}