Intent Filter在单击自定义URI时启动My Activity

我试图允许注册URI以打开我的应用程序。 就像Blackberry上的PatternRepository和iPhone上的CFBundleURLName / CFBundleURLSchemes 。 如何在Android上获得相同的结果?

系统将使用以下链接发送电子邮件: myapp://myapp.mycompany.com/index/customerId/12345 。 想法是用户应该能够点击链接以打开应用程序中的客户活动。

我已尝试过其他SOpost的大量建议,但我无法让操作系统识别模式并打开我的应用程序。

在Gmail应用中,它看起来像这样:myapp:// myapp.mycompany.com/index/customerId/12345 。 它识别并强调链接的myapp.mycompany.com/index/customerId/12345部分,并在浏览器中打开它。 myapp://部分未链接

标准邮件应用程序将整个链接视为纯文本。

我在这里想念的是什么?

PS:我已经看过如何在Android上实现我自己的URI方案以及如何通过在Android OS中的浏览器中调用URL来注册一些URL命名空间(myapp://app.start/)来访问您的程序?

清单:

                             

最终解决方案是一个涵盖所有基础的hacky解决方法。 该电子邮件现在还包含一个附件,其附加注册为随应用程序打开。

清单:

                        

当我使用Google日历处理OAuth时,我不得不将此filter添加到我想要接收回调的活动中:

       

当浏览器调用yourapp://goog URL时,它将返回到我的Activity。

您可以通过使用带有302重定向的标准HTTP URL来解决GMail不链接非标准协议的问题。 您可以在网站的网络服务器或应用程序服务器上进行设置,也可以使用像http://bit.ly这样的URL缩短程序进行快速而肮脏的测试。

你有没有为你的意图filter添加一个类别:

  

您可以随时尝试使用HTML发送电子邮件,然后使用标签创建URL。 我认为没有办法改变Gmail或Mail解析文本的方式,因为他们可能使用Linkify类。

另一种选择是使用http://然后只解析一个特定的自定义子域,它将为您的用户提供在浏览器或您的应用程序中打开的选项。

我也碰到了这个,但是对于标准的http:scheme urls。 Gmail似乎没有向Intent添加任何类别。 现在我检查BROWSABLE,但是我还检查了!intent.hasCategories()并允许它也通过。

这对我来说是解决方案。 谢谢@DanO