从电子邮件链接启动活动

时间:2012-06-14 10:53:33

标签: android android-intent uri

我迫切希望实现的是在用户点击通过电子邮件发送的链接时启动我的应用。用户将打开他/她的android gmail应用程序(截至今日版本在我的2.3.3 Android手机中为2.3.6),并指示按照该链接以便我的应用程序可以启动并开始工作。

我已经从android网站的开发者角落阅读了大量的文档,并且在SO中也有类似的问题,当然使用google-fu,但是到目前为止还没有给出没有工作的答案甚至不是Android机组人员本身也使用SO作为事实上的Q / A地方。

我已尝试将此配置放入清单文件中:

    <activity android:name=".MyApp" > 
        <intent-filter> 
             <action android:name="com.my.actions.MY_CUSTOM_ACTION" /> 
             <category android:name="android.intent.category.DEFAULT" /> 
             <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter> 
    </activity></code>

它没有用,所以我也尝试编写我的自定义方案,即使hackbod says not to,但也根本不起作用。 另一种选择是拥有一个自定义网站,以便在指定http方案和主机的intent-filter中使用“data”标签,但这对很多人而言是不< / em>有一个网站。

也许我错过了什么。我可以做什么?即:是否可以从gmail android app的电子邮件中写的链接启动活动?如果是,那么这种链接必须遵循什么结构/语法?我无法相信这可能是所以奇怪。它在BB和iOS中使用没有任何问题。

任何帮助表示赞赏。 提前谢谢。

1 个答案:

答案 0 :(得分:5)

  

用户将打开他/她的android gmail应用

你无从知晓。用户可能正在使用任意数量的电子邮件客户端。它们不会都具有相同的行为,但大多数希望能够相当一致地处理http:链接。

  

但到目前为止还没有给出合适的答案

是的,他们有。我亲自这样做了。

  

另一个选择是拥有一个自定义网站,以便在指定http方案和主机的intent-filter中使用“data”标签,但这对很多没有人的人来说是一个显示阻止一个网站。

设置网站需要几分钟和几美元。此外,无论如何,他们需要这样做,以便有一个网站来营销相关的应用程序。如果他们负担不起,他们买不起25美元在Play商店上市应用程序或其他市场的类似费用。而且,如果他们正在为企业编写此应用程序,该企业应该已经拥有一个网站。并且,在一天结束时,如果开发人员不介意用户在没有应用程序的地方点击电子邮件而获得404,则URL不需要实际解析为互联网上的任何内容。

因此,如果这是一个“显示停止者”,呼吸也是如此。

  

我所做的一切都可能吗?

  

如果是,那么这种链接必须遵循什么结构/语法?

通过以下<intent-filter>

http://www.this-so-does-not-exist.com/something可以很好地启动this sample app

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" android:host="www.this-so-does-not-exist.com" android:path="/something" />
  </intent-filter>

您会注意到此网址会显示为404,这表明您实际上并不需要花费任何资金来使用此技术。另请注意,此技术已在StackOverflow和其他地方的许多地方写过。

但是,即使在HTML电子邮件中使用,Gmail也似乎无法获取intent:方案。