问题描述
我正在构建一个网络应用程序,我希望我的应用程序打开应用程序链接。
但是,我无法确定网址是应用链接还是常规网址。
就像 chrome 一样,如果 url 不是应用程序链接或深层链接,我希望我的应用程序在应用程序内导航,但如果不是来自指定主机,我当前的方法会在外部浏览器中打开所有网址.
public boolean shouldOverrideUrlLoading(WebView view,String url) {
String host = null;
try {
URI u = new URI(url);
host = u.getHost();
} catch (URISyntaxException e) {
e.printstacktrace();
}
if (host == null || !host.contains("example.com")) {
try {
onActivity.startActivity(Intent.parseUri(url,Intent.URI_INTENT_SCHEME));
return true;
} catch (ActivityNotFoundException | URISyntaxException e) {
e.printstacktrace();
}
}
}
有没有办法区分应用链接导航和计划网址导航的行为?
谢谢
解决方法
虽然这不是我所期望的确切行为,但我发现了类似的东西。
如果有人有兴趣使用 startActivity(url_intent) 而不是在浏览器中执行外部应用程序,请添加
mergetool
您可以忽略包含的应用程序的执行
intent.setFlags(Intent.FLAG_ACTIVITY_REQUIRE_NON_BROWSER);
https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9