在 Gmail 嵌入式浏览器中打开电子邮件的应用程序链接,而不是启动我的应用程序

Application links from email opening in Gmail embedded browser instead of launching my app

我们正在开发一个全新的应用程序,与许多应用程序一样,在您注册帐户的过程中,您会收到一封电子邮件,里面有一个激活按钮。

按钮后面的 link 类似于 https://links.mydomain.dev/activate/somecodeorso. The application is configured to intercept all URLs from https://links.mydomain.dev。如果我们在点击时在我们的聊天应用程序中传递此 link,它会要求打开我们的应用程序或在浏览器中打开。

然而,在 Android 上,我们主要使用 Gmail 帐户进行测试,并且从 GMail 中启动了一个嵌入式浏览器,我们的 link 在那里打开,只打开 'fallback' 页面我们将您重定向到游戏或应用程序商店。 所以我知道我的应用程序配置正确以拦截 URLs。所以问题与app无关。

我也知道在 GMail 中我可以禁用嵌入式浏览器,但这当然不适合我,我们的许多潜在用户将拥有未修改的标志,当然我们也不能要求他们切换此设置。 但是在同一台设备上,我测试了其他服务(例如,我测试的最后一个服务是 Tricount),他们的电子邮件后面都有常规 URL,但它没有启动嵌入式浏览器,而是要求打开应用程序或常规浏览器。

所以现在问题跑题了,我哪里做错了。我应该做些什么来让 link 在应用程序中打开(或者至少让 OS 问我如何处理它)?

如有任何帮助,我们将不胜感激!

感谢@CommonsWare,我开始研究其他一些 APK,发现了一些差异。

差异之一在查询块内:

        <!-- If your app opens https URLs -->
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="https" />
        </intent>

        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
        </intent>
    </queries>

我只有 VIEW 版本,没有与 BROWSABLE 结合使用的版本。然而,这似乎没有必要。

但我的 URL:

的 intent 过滤器起了什么作用
            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https" android:host="mydomain.com" />
                <data android:scheme="http" android:host="mydomain.com" />
            </intent-filter>

我只有 https 行,因为我将使用正确的 https url 生成我的所有电子邮件。但是添加 http 方案修复了它。 Gmail 现在让我可以先选择我的应用程序!