2012-10-16 91 views
2

我想分享一個HTML鏈接到Facebook,Twitter或電子郵件。這是我迄今爲止所做的,但有兩件事情出錯了。android-分享HTML鏈接到Facebook,微博或電子郵件

Intent shareIntent = new Intent(Intent.ACTION_SEND); 

shareIntent.setType("text/html"); 
shareIntent.putExtra(Intent.EXTRA_TEXT, "<!DOCTYPE html><html><body>" + htmlUrl + "</body></html>"); 

startActivity(Intent.createChooser(shareIntent, "Share!")); 

WHERE htmlUrl = "<a href=\"http://{url}/?q=" + queryString.substring(0, queryString.length() - 1) + "\" >Text to url! </a>"

首先這隻能說明該列表中的電子郵件應用程序。

其次它顯示爲電子郵件中的全文而不是HTML項目。

感謝, DMAN

回答

2

你的MIME類型是錯誤的。用這個代替:

shareIntent.setType("text/plain"); 

如果你只是想分享一個鏈接,而不是全面的HTML,只需使用URL作爲Intent.EXTRA_TEXT值:

shareIntent.putExtra(Intent.EXTRA_TEXT, url); 

請注意,只有一些應用程序(如GMail,藍牙和Dropbox)支持共享HTML。使用純文本,允許更多的應用程序,以趕上你Intent

+0

是的我意識到我已經倒過來了,但仍然沒有緩解這個問題 – DMCApps

+0

試着檢查你放入臨時演員的內容。選擇器顯然決定他們是否可以處理基於EXTRA_TEXT參數的內容 – JesperB

+0

不太清楚我在EXTRA_TEXT中查找的內容,我在將額外內容放入其中並且它包含在對象內以及它在內部顯示之後調查了shareIntent當我從列表中選擇該電子郵件時(但它顯示了我不想在電子郵件中顯示的所有<!DOCTYPE html>等標籤)。 – DMCApps

0

shareIntent.setType("text/html"); 

應當對HTML部分做。爲什麼只有電子郵件顯示不知道,你有其他的應用程序,如臉譜,微博等安裝來處理共享意圖?

+0

忘了提及,我已經嘗試過與你說的類型,但仍然沒有工作。是的,我在測試設備上安裝了Facebook。 – DMCApps

+0

你試過只是把純文本 - 不認爲這是它,但你的代碼完全匹配的正式文件,所以時間來尋找奇怪的原因... – dorjeduck

+0

是的我已經改變了文本/平原的類型,不幸的是在格式化沒有運氣方面,雖然這確實顯示列表中的Facebook(以及藍牙和消息)。這只是留下了HTML格式的問題,而不是格式化的鏈接我想發送 – DMCApps

1

分享至Facebook(用這種方法只能分享鏈接)

Intent facebookIntent = new Intent(Intent.ACTION_SEND); 
facebookIntent.setType("text/plain"); 
facebookIntent.setPackage("com.facebook.katana"); 
facebookIntent.putExtra(Intent.EXTRA_TEXT, shareUrl); 
startActivity(facebookIntent); 

分享到電子郵件(使用此方法可以在c焊割電子郵件內容,以HTML格式,但使用默認的電子郵件客戶端不工作,它的工作原理Gmail客戶端上。)

Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.putExtra(Intent.EXTRA_SUBJECT, shareTitle); 
    intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(content of your email)); 
    intent.setType("message/rfc822"); 
    startActivity(Intent.createChooser(intent, "Share to Email...")); 

分享至Twitter

Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.putExtra(Intent.EXTRA_TEXT, your content); 
    intent.setType("application/twitter"); 
    startActivity(intent); 

希望這有助於。

相關問題