有沒有類似於Android的getsharekit.com?它允許分享URL到社交網站。有沒有類似的,或者我需要單獨編寫Facebook,Twitter和電子郵件?在Android中分享Facebook,Twitter和電子郵件的URL?
回答
我不知道如果這是你的意思,但你可以使用Android內置的共享菜單...
您可以共享多(只要一個URL到Facebook,Twitter,Gmail來應用程序使用意圖安裝在設備上):
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_SUBJECT, "Sharing URL");
i.putExtra(Intent.EXTRA_TEXT, "http://www.url.com");
startActivity(Intent.createChooser(i, "Share URL"));
如果你想分享給用戶的設備上沒有安裝,例如應用程序 - 臉譜,那麼你就必須使用Facebook SDK。
如果你希望你的活動,以處理來自其他應用共享以及文本數據,你可以添加到您的AndroidManifest.xml:
<activity android:name=".ShareLink">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
希望這有助於!
我正在尋找一個解決方案,而不使用已安裝的應用程序。 – sunil 2010-11-19 13:20:13
這不適用於Facebook – 2010-12-11 18:38:14
謝謝你,我已經從text/html更改爲text/plain,並且此工作正常,除了向活動添加意圖過濾器部分 – 2011-11-19 13:53:38
對我來說,這只是正常工作:
startActivity(Intent.createChooser(new Intent(Intent.ACTION_SEND,
Uri.parse("http://...")),"Share URL"));// share url is on your own
不起作用,並給出「沒有應用程序可以執行此操作」 – 2014-03-31 15:23:51
不工作:錯誤「沒有應用程序可以執行此操作」 – 2015-05-27 09:51:57
因爲它沒有應用程序可以執行此操作是沒有指定mimetype。應用過濾器對類型發送操作。如果您沒有指定它(文本/純文本),則沒有應用程序會攔截該意圖 – 2015-07-22 10:02:27
對於Facebook,你可以用`
https://m.facebook.com/sharer.php?u=website_url&t=titleOfThePost
網站的URL可以是任何東西refereing到,例如,如果任何資源你想從互聯網上獲得一張圖片並將其放在你的牆上。
希望這將有助於
你可以試試這個...
private void shareTextUrl() {
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("text/plain");
share.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
share.putExtra(Intent.EXTRA_SUBJECT, "Title Of The Post");
share.putExtra(Intent.EXTRA_TEXT, "<source url>");
startActivity(Intent.createChooser(share, "Share text to..."));
}
這裏是我的實現,如果你想僅僅通過增加包名,您可以添加更多的應用程序。該代碼還根據其名稱對應用程序進行排序。
List<Intent> targetShareIntents = new ArrayList<Intent>();
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
PackageManager pm = getActivity().getPackageManager();
List<ResolveInfo> resInfos = pm.queryIntentActivities(shareIntent, 0);
if (!resInfos.isEmpty()) {
System.out.println("Have package");
for (ResolveInfo resInfo : resInfos) {
String packageName = resInfo.activityInfo.packageName;
Log.i("Package Name", packageName);
if (packageName.contains("com.twitter.android") || packageName.contains("com.facebook.katana")
|| packageName.contains("com.whatsapp") || packageName.contains("com.google.android.apps.plus")
|| packageName.contains("com.google.android.talk") || packageName.contains("com.slack")
|| packageName.contains("com.google.android.gm") || packageName.contains("com.facebook.orca")
|| packageName.contains("com.yahoo.mobile") || packageName.contains("com.skype.raider")
|| packageName.contains("com.android.mms")|| packageName.contains("com.linkedin.android")
|| packageName.contains("com.google.android.apps.messaging")) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));
intent.putExtra("AppName", resInfo.loadLabel(pm).toString());
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "https://website.com/");
intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.share_text));
intent.setPackage(packageName);
targetShareIntents.add(intent);
}
}
if (!targetShareIntents.isEmpty()) {
Collections.sort(targetShareIntents, new Comparator<Intent>() {
@Override
public int compare(Intent o1, Intent o2) {
return o1.getStringExtra("AppName").compareTo(o2.getStringExtra("AppName"));
}
});
Intent chooserIntent = Intent.createChooser(targetShareIntents.remove(0), "Select app to share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetShareIntents.toArray(new Parcelable[]{}));
startActivity(chooserIntent);
} else {
Toast.makeText(getActivity(), "No app to share.", Toast.LENGTH_LONG).show();
}
}
您可以使用也ShareCompat類從支持庫。
ShareCompat.IntentBuilder.from(activity)
.setType("text/plain")
.setChooserTitle("Share URL")
.setText("http://www.url.com")
.startChooser();
https://developer.android.com/reference/android/support/v4/app/ShareCompat.html
- 1. Twitter/Facebook在電子郵件分享
- 2. 在Facebook,Twitter和電子郵件上捕獲視頻分享
- 3. Facebook分享電子郵件
- 4. Android - Phonegap,發送短信,電子郵件,分享Facebook,Twitter
- 5. 使用PhoneGap/jQueryMobile分享在Facebook/Twitter /電子郵件功能
- 6. Android - 分享到Facebook,Twitter,郵件,ecc
- 7. android共享一個文本文件Facebook,Twitter,電子郵件
- 8. 通過Facebook,Twitter和電子郵件分享最簡單的方式?
- 9. android-分享HTML鏈接到Facebook,微博或電子郵件
- 10. oauth twitter和電子郵件
- 11. 在Android上分享Bitmap()到twitter,facebook,郵件
- 12. iOS UIBarButtonItem圖標:Facebook/Twitter /電子郵件
- 13. 分享Fb,Tw和電子郵件使用Intent.action_SEND在android
- 14. Twitter和Facebook分享回調?
- 15. Phonegap facebook和twitter分享
- 16. facebook和twitter分享計數
- 17. 共享應用程序通過Facebook,Twitter,電子郵件和信息只有
- 18. 添加Facebook的「分享」鏈接到電子郵件爆炸
- 19. WordPresspress在Facebook/Twitter上分享頁面/發佈url /路徑分享
- 20. asp.net中的Facebook和Twitter分享按鈕
- 21. 在twitter和facebook上分享文本/圖像在android中
- 22. Android開Facebook的電子郵件地址
- 23. Android的Facebook登錄電子郵件
- 24. 通過電子郵件向Facebook分享照片
- 25. Facebook,Twitter和電子郵件不能使用ShareKit
- 26. Django Social Auth:從linkedin,twitter和facebook獲取電子郵件
- 27. 分享 - 電子郵件輸入字段
- 28. windows phone 8通過電子郵件,臉書和Twitter分享內容
- 29. oauth.io和Twitter電子郵件支持?
- 30. 通過Facebook,電子郵件和短信/彩信分享音頻文件(.mp3)
每種情況稍微好一些答案都可以在這些問題中找到:Facebook的(http://stackoverflow.com/questions/7545254/android-and-facebook-share-intent) ,[Twitter](http://stackoverflow.com/questions/2077008/android-intent-for-twitter-application),[email](http://stackoverflow.com/questions/8701634/send-email-intent) (使用'Intent.EXTRA_TEXT'將URL包含在電子郵件正文中)。 – Jonik 2014-04-10 19:55:25
這是我的解決方案,工作正常,只是爲了在Facebook上共享URL,http://stackoverflow.com/a/29529335/513413 – Hesam 2015-04-09 03:43:29