在 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 现在让我可以先选择我的应用程序!
我们正在开发一个全新的应用程序,与许多应用程序一样,在您注册帐户的过程中,您会收到一封电子邮件,里面有一个激活按钮。
按钮后面的 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 现在让我可以先选择我的应用程序!