如何使用链接发送电子邮件以打开Android应用程序

问题描述:

我已经创建了一些通过电子邮件将html电子邮件发送到给定地址的代码。该电子邮件包含以下链接:如何使用链接发送电子邮件以打开Android应用程序

<a href="crystalcloud://android?4567">Click to validate account</a> 

我正在通过将其发送到我的gmail帐户进行测试。出于某种原因,当我收到电子邮件时,它不会让我点击链接。如果我把这个链接放在一个网页中,我的应用程序启动正常。

有什么特别的我必须做的,以获得此链接显示在电子邮件中,或让gmail只是阻止这些类型的链接?无论如何要解决这个问题在Gmail?

编辑:添加我的代码

代码片段发送链接:

MimeMessage message = new MimeMessage(session); 
    message.setFrom(new InternetAddress(from)); 
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailAddress)); 
    message.setSubject("New Crystal Cloud User"); 
    message.setContent("Thank you for creating a new Crystal Cloud account!<br><a href=\"crystalcloud://android?4567">Click to validate account</a>", "text/html; charset=utf-8"); 
    Transport transport = session.getTransport("smtp"); 
    transport.connect(host, from, pass); 
    transport.sendMessage(message, message.getAllRecipients()); 
    transport.close(); 

Android的代码对意图作出回应:

 <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:scheme="crystalcloud" /> 
     </intent-filter> 

这是一个Android电子邮件客户端的问题,他们没有显示链接为可点击的,除非它们是http或https。

我的解决办法是使用HTTP协议来打开我的应用程序:

<data android:scheme="http" android:host="com.company.app" android:port="3513" /> 

这工作,但恼人的,因为它提示用户在浏览器或应用程序打开该应用。 另一个解决方案是有一个链接到一个网站,然后做一个JavaScript重定向到您的应用程序,虽然这可能会导致更多的问题。

+0

我想我会做到这一点,并生活在烦恼。 – 2011-04-18 02:40:14

在邮件标题放在Content-Type: text/html表明内容是用HTML表示的,表示邮件是以HTML格式发送的。然后邮件客户端将适当地呈现HTML。这将有助于将链接也包含在<html></html>区块中。

+0

我已经做到了。该html正在正确发送,但它似乎阻止了这种类型的链接。有任何想法吗? – 2011-04-18 02:26:30

+0

它只发生在Gmail中吗?您是否尝试过使用其他邮件客户端?如果只使用Gmail,则可能是使用其网页仿冒过滤器。 – Rasika 2011-04-18 02:36:24

我面临同样的问题,最后我得到了解决方案。您可以分享文字以及链接

String link_val = "http://play.google.com/store/apps/details?id=" + MainActivity.this.getPackageName(); 
     String body = "<a href=\"" + link_val + "\">" + link_val + "</a>"; 
     String data = "Hello I am using this App.\nIt has large numbers of Words meaning with synonyms.\nIts works offline very smoothly.\n\n" + body; 
     sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(data)); 
+0

它可以在Android 6及更高版本上工作吗? 我试过类似的东西,它适用于android 4.3,但不适用于6和7: – 2017-01-16 16:21:33

+0

它会工作,因为我已经使用相同的代码,你可以试试 – 2017-01-17 03:54:58

+0

我试过了,它没有。从S3mini我收到我的电子邮件中的链接,从Nexus 5与6和LG G5与7我只是获得文本,没有超链接。 我试过类型:“text/html”和“message/rfc822”任何ideea为什么? – 2017-01-17 09:03:59