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

Posted

技术标签:

【中文标题】在 Gmail 嵌入式浏览器中打开电子邮件的应用程序链接,而不是启动我的应用程序【英文标题】:Application links from email opening in Gmail embedded browser instead of launching my app 【发布时间】:2021-11-25 06:26:31 【问题描述】:

我们正在开发一个全新的应用程序,并且与您在注册​​帐户期间的许多应用程序一样,您将收到一封电子邮件,其中包含一个激活按钮。

按钮后面的链接类似于https://links.mydomain.dev/activate/somecodeorso。该应用程序被配置为拦截来自https://links.mydomain.dev 的所有 URL。如果我们在点击时在聊天应用程序中传递此链接,它会要求打开我们的应用程序或在浏览器中打开。

但是,在 android 上,我们主要使用 Gmail 帐户进行测试,并且从 GMail 中启动嵌入式浏览器,并在其中打开我们的链接,并打开“后备”页面,我们将在该页面上重定向您的游戏或应用商店。 所以我知道我的应用程序已正确配置为拦截 URL。所以问题与应用无关。

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

所以现在问题不在了,我做错了什么。我应该做些什么特别的事情来使链接在应用程序中打开(或者至少让操作系统问我如何处理它)?

任何帮助将不胜感激!

【问题讨论】:

“我做错了什么” - 将您的清单与那些按照您想要的方式运行的应用程序进行比较,看看有什么区别。 This app 可让您检查其他已安装应用的清单。 【参考方案1】:

感谢@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-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 网址生成所有电子邮件。但是添加 http 方案修复了它。 Gmail 现在让我可以先选择我的应用!

【讨论】:

以上是关于在 Gmail 嵌入式浏览器中打开电子邮件的应用程序链接,而不是启动我的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

打开电子邮件应用程序网址

如何防止在 Gmail 的集成迷你浏览器中打开链接

在 Gmail 中删除了 iOS 深层链接

Gmail 阻止电子邮件模板中嵌入的小型嵌入式图像

如何阻止电子邮件中的嵌入图像被 GMail 显示为附件?

使用 Gmail API 时,您能否以及如何在电子邮件中嵌入图像?