如何验证网址是不是为应用链接

Posted

技术标签:

【中文标题】如何验证网址是不是为应用链接【英文标题】:How to verify if a url is an applink or not如何验证网址是否为应用链接 【发布时间】:2021-06-30 23:38:21 【问题描述】:

我正在构建一个 Web 应用程序,我希望我的应用程序能够打开应用程序链接。

但是,我无法确定网址是应用链接还是常规网址。

就像 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();
        
    

有没有办法区分应用链接导航和计划网址导航的行为?

谢谢

【问题讨论】:

【参考方案1】:

虽然这不是我所期望的确切行为,但我发现了类似的东西。

如果有人对使用 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

【讨论】:

以上是关于如何验证网址是不是为应用链接的主要内容,如果未能解决你的问题,请参考以下文章

应用搜索 API 验证工具显示“example.com 正在返回 469。请检查您的网址并重试。”

微信企业号:OAuth2.0微信授权验证

忘记密码链接:如何验证链接? [复制]

如何检查用户电子邮件是不是已验证?

Spring Security:如何在公共页面中识别用户已通过身份验证

如何在未经身份验证的情况下从 Google Play 商店请求应用程序信息