我正在构建一个web应用程序,我希望我的应用程序打开应用程序链接。
然而,我在判断一个url是应用程序链接还是常规url时遇到了麻烦。
就像chrome做的那样,如果url不是应用程序链接或深度链接,我希望我的应用程序在应用程序内导航,但如果不是来自指定的主机,我当前的方法将在外部浏览器中打开所有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();
}
}
}有没有办法区分app链接导航和计划url导航的行为?
谢谢
发布于 2021-04-06 09:11:36
虽然这不是我所期望的行为,但我还是找到了类似的东西。
如果任何人对在应用程序外部使用startActivity(url_intent)执行而不是在浏览器中执行感兴趣,可以添加
intent.setFlags(Intent.FLAG_ACTIVITY_REQUIRE_NON_BROWSER);您可以忽略包含以下内容的应用程序的执行
<intent-filter>
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9
https://stackoverflow.com/questions/66947430
复制相似问题