android - 发送包含链接 (HTML) 的电子邮件以在手机上打开特定应用程序

标签 android html

背景

我计划在我的应用程序中实现密码重置功能。经过一些研究,我评估了这种方法以满足我的需求:

  1. 用户进入“重置密码” Activity ,在其中输入预先注册的电子邮件以发送重置链接。
  2. 系统有一个表password_change_requests,其中包含IDTimeUserID 列。当用户按下“发送”按钮重置密码时,表中会创建一条记录。 时间列包含用户按下“忘记密码”按钮的时间。 ID 是一个字符串。创建一个长随机字符串,然后像密码一样进行哈希处理。然后,该哈希值将用作表中的“ID”。
  3. 系统会向用户发送一封电子邮件,其中包含链接。该链接还包含原始 ID 字符串(散列之前)。
  4. 当用户点击电子邮件中的链接时,他会被转到相关应用程序。应用程序从 URL 检索 ID,再次对其进行哈希处理,然后对照表进行检查。如果存在这样的记录并且不超过 24 小时,则会提示用户输入新密码。
  5. 用户输入新密码,然后点击“确定”。

这种方法的灵感来自 this question 的答案由维尔克斯-。

困难

乍一看,上述方法似乎很容易实现。但我遇到了一些令人头疼的问题。步骤(1)和(2)很容易实现。当我仔细观察步骤 (3) 和 (4) 时,我最初的想法是通过电子邮件发送某种Intent,因为这是启动应用程序的常用方式。但由于 Intent 的“源”最多是 HTML 代码,所以我不太确定这是否有效。

问题

  1. 如何通过用户收件箱中的电子邮件(例如 HTML anchor 标记)启动我的特定 Android 应用程序?
  2. 如何通过电子邮件将数据(ID 字符串)传递到我的应用程序?

如果这是不可能的,是否有其他方法来解决上述方法?

最佳答案

How can I launch my specific android application from an email (say an HTML anchor tag) in the users inbox?

没有保证可以做到这一点。电子邮件应用程序没有义务关注您。

欢迎您在您的应用中开展 Activity , Activity 编号为 <intent-filter>通告您希望响应某些 URL 或 URL 前缀,例如 http://marcussystem.com/hey/lets/run/the/app 。理论上,当用户单击电子邮件中指向匹配 URL 的链接时,您的应用程序将包含在选择器(以及 Web 浏览器)中供用户选择。

或者,欢迎您使用intent创建一个URL打开您的一项 Activity 的方案。电子邮件客户端可能无法将其识别为有效的 URL,但它会绕过选择器。

但是,同样,不需要任何电子邮件客户端来支持您想要的功能。对于碰巧在移动网络浏览器中查看电子邮件的用户来说,情况会加倍。

How do I pass on the data (the ID string) to my application via the email?

http URL 情况下,让它成为 URL 本身的一部分,最好在路径中:http://marcussystem.com/hey/lets/run/the/app/and/here/is/the/ID/... ,其中...是您的 ID(假设它是纯粹的 URL 路径友好字符)。

关于android - 发送包含链接 (HTML) 的电子邮件以在手机上打开特定应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31813958/

相关文章:

c# - 相机对焦时如何实现视觉指示器

java - 应如何将长时间运行的操作中的数据传递到要在 UI 中显示的 fragment ?

html - 单击链接时跳转到下一个 DIV 显示和隐藏

html - 支持多种设备的 HTTP 实时流式传输

jquery - 如何使用 jquery 使用网络摄像头或移动设备捕获图像?

javascript - 如何在动态方法中更改列的宽度

android - 在 android 中使用抽屉导航创建基本 Activity

android - 在 Android 2.3 上获取移动基站定时提前

android - Google Play 位置库 : Manifest merger failed

javascript - 如何在 Plottable.js 多图中显示图例