2011-04-18 124 views
9

我已經創建了一些通過電子郵件將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> 

回答

15

這是一個Android電子郵件客戶端的問題,他們沒有顯示鏈接爲可點擊的,除非它們是http或https。

我的解決辦法是使用HTTP協議來打開我的應用程序:

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

這工作,但惱人的,因爲它提示用戶在瀏覽器或應用程序打開該應用。 另一個解決方案是有一個鏈接到一個網站,然後做一個JavaScript重定向到您的應用程序,雖然這可能會導致更多的問題。

+0

我想我會做到這一點,並生活在煩惱。 – 2011-04-18 02:40:14

0

在郵件標題放在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

0

我面臨同樣的問題,最後我得到了解決方案。您可以分享文字以及鏈接

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

相關問題