有沒有類似於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. Facebook分享電子郵件
- 2. Android - Phonegap,發送短信,電子郵件,分享Facebook,Twitter
- 3. 通過Facebook,Twitter和電子郵件分享最簡單的方式?
- 4. oauth twitter和電子郵件
- 5. 在Android上分享Bitmap()到twitter,facebook,郵件
- 6. 分享Fb,Tw和電子郵件使用Intent.action_SEND在android
- 7. Twitter和Facebook分享回調?
- 8. facebook和twitter分享計數
- 9. 添加Facebook的「分享」鏈接到電子郵件爆炸
- 10. asp.net中的Facebook和Twitter分享按鈕
- 11. 在twitter和facebook上分享文本/圖像在android中
- 12. Android開Facebook的電子郵件地址
- 13. oauth.io和Twitter電子郵件支持?
- 14. 分享 - 電子郵件輸入字段
- 15. 通過Facebook,電子郵件和短信/彩信分享音頻文件(.mp3)
- 16. Facebook的API - UID和電子郵件
- 17. 防止Android WebView中電子郵件和URL的自動鏈接
- 18. 電子郵件URL方案對於Android
- 19. 如何在不使用UIActivityViewController的情況下打開Facebook,Twitter或電子郵件以分享消息或照片
- 20. 在Facebook,Instagram和Twitter上分享Android應用程序
- 21. Facebook登錄和電子郵件驗證
- 22. facebook連接和用戶電子郵件
- 23. 在Facebook或Twitter上分享高分
- 24. 幫助facebook和twitter分享按鈕
- 25. Android,如何過濾只有Facebook和Twitter的社交分享?
- 26. 在phonegap-android中的Webintent電子郵件?
- 27. Facebook,Twitter等。登錄網站沒有取電子郵件
- 28. 獲取Facebook電子郵件/電子郵件散列
- 29. url中的電子郵件地址
- 30. URL中的電子郵件地址?
每種情況稍微好一些答案都可以在這些問題中找到: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