我已经创建了一些代码,将html电子邮件发送给给定的地址.电子邮件包含以下链接:
<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重定向,但这可能会导致更多问题.