2013-01-25 26 views
4

我正面臨Android 4.1+設備上發生的問題。 我想發送一封包含html鏈接的電子郵件(通過Intent)。我知道這可以在android 2.x設備上運行,因爲我這麼做了好幾個月。HTML鏈接從意圖生成的電子郵件中消失(Android 4.1+)

下面是Java代碼:

startActivity(Intent.createChooser(
new Intent(Intent.ACTION_SEND)    
.putExtra(Intent.EXTRA_SUBJECT, "A subject") 
.setType("text/html") 
.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("Some text ... <a href="http://www.weburl.com">Some text</a>)), "Email")); 

在Android 4.1: 當我使用此代碼,Gmail中顯示文本如預期,我看到的鏈接以藍色下劃線的。但是我沒有鏈接收到這封郵件。

在Android 2.x上: 一切都很完美。我收到鏈接的電子郵件

有人可以幫我解決這個問題嗎?

回答

4

我認爲電子郵件應用程序沒有完整的html支持。我有以下代碼:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto","", null))    
       .putExtra(Intent.EXTRA_SUBJECT, "LIJSTJE fb") 
       .putExtra(Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder() 
       .append("<p style='font-weight:bold;'>Some Content</p>") 
       .append("<a>http://www.google.com</a><br/>") 
       .append("<a href='http://www.facebook.com'>facebook</a>") 
       .append("<small><p>More content</p></small>") 
       .toString())); 

       startActivity(Intent.createChooser(emailIntent, "Send email...")); 

段落和新行按預期添加。但是造型不是。另外,當你打印完整的網址時,你會得到一個鏈接,但是當你像Facebook鏈接那樣做時,你不會。

我懷疑電話上的電子郵件客戶端刪除樣式並確保鏈接鏈接到可見文本。所以用戶知道鏈接去往哪裏。此外,如果你考慮它,本地Gmail應用程序沒有樣式選項。所以這可能會導致刪除樣式行爲。

至少這是我的理論。 :)

(注:我只對原生Gmail應用程序測試)

而且我從SEND改變的Intent類型的SendTo這種方式,僅使用電子郵件客戶端,而不是其他應用程序。我刪除了setType()方法,因爲當你使用它時,你會得到一個「找不到應用程序」的錯誤。

相關問題