2016-01-05 196 views
23

由於Facebook不允許通過Intent共享文本,除非我們使用Facebook SDK,我正在尋找解決方法來實現這一目標。通過Facebook上的Intent分享文本而不使用Facebook sdk

我能想到的3名黑客,我可以使用:

1)如圖Facebook允許圖像共享,我可以生成與共享文本Bitmap繪製到其上,並使用Intent共享圖像。

2)Facebook允許共享URL,在共享時它也會顯示頁面的Head。我可以在我的服務器上託管一個專用頁面,並在url中傳遞值作爲參數,並生成使用它的Head(我沒有使用php的經驗,但我猜這是可能的)

3)將文本複製到剪貼板並通知用戶這一點。所有3

OR

使用組合任何人都可以建議我身邊的一個更好的方式來分享我在Facebook上的內容,而無需使用Facebook的SDK?

在此先感謝。

+0

當我碰到了這一點,我的解決辦法是複製文本字符串發送到剪貼板,並通過Toast通知用戶,他們需要粘貼它。蹩腳的解決方案,但它的作品。 – durbnpoisn

+0

我爲我的應用程序使用這種黑客攻擊,但這次我正在尋找更好的方式來共享文本。 – Hemanth

+0

您不允許預先填寫用戶的文字。您應該閱讀Facebook平臺政策 – WizKid

回答

-1

如果您不介意顯示其他共享選項,您可以使用定期共享意向與選擇器,因爲如果Facebook啓用它,它將成爲共享選項之一。

Intent shareIntent = new Intent(); 
shareIntent.setAction(Intent.ACTION_SEND); 
shareIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
shareIntent.setType("text/plain"); 
startActivity(Intent.createChooser(shareIntent, "Choose sharing method")); 
+0

這不回答問題。 – Hemanth

+0

您要求在Facebook上分享文本內容的替代方法,此方法可行,我認爲它可以回答您的問題 – chosendeath

+2

'這是我發送的文本。當它從選擇器中選擇時,它不會出現在Facebook應用程序中。 – Hemanth

0

當您使用本機意圖時,如果用戶使用意向數據,則由用戶共享應用程序。

這是一個已知的bug,Facebook已將此錯誤列入心願單。也許他們沒有試圖解決它。這是故意讓人們使用FB SDK我認爲。請參閱此鏈接http://forum.developers.facebook.net/viewtopic.php?id=93900,這post

http://forum.developers.facebook.net/viewtopic.php?id=93900

+0

(這不回答問題)我完全明白這一點。這就是我尋找解決方法的原因。例如:我可以分享圖片並共享文字,並且不違反政策。有更好的建議嗎? – Hemanth

+0

我可能沒有得到你的問題。使用圖像上的文字或將文字複製到剪貼板並顯示吐司粘貼可能是可能的解決方法。 媽的。 Downvoted :( – bpr10

31

有沒有辦法,你可以在Facebook的採用了android shareIntent單獨共享文本。

只有通過Facebook SDK使用共享鏈接功能纔有可能。

如果有圖像,Facebook只會從意圖中忽略額外文本。您可以分享圖片,但不允許您分享文字內容。

不幸的是,Facebook共享意圖只能帶有一個帶有前綴http://的單個URL,並且沒有其他文本消息。實際上facebook會去掉文字內容,並只允許URL/Link。它是由Design設計的,我們無法控制它。

這將工作

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
sharingIntent.setType("text/plain"); 
sharingIntent.putExtra(Intent.EXTRA_TEXT, "http://www.google.com"); 
startActivity(Intent.createChooser(sharingIntent, "Share via")); 

這是行不通的。

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
sharingIntent.setType("text/plain"); 
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Share Text from App"); 
startActivity(Intent.createChooser(sharingIntent, "Share via")); 

唯一的方法,你可以分享在Facebook的文本使用Facebook的 SDK。

參考鏈接

Android share intent for facebook- share text AND link

Unable to share text with a link through Android Share Intent

Android and Facebook share intent

+0

任何方式來分享我的FB上的內容?像分享一個圖像與文本上繪製它,或共享一個網址,並在運行時生成它的頭。 – Hemanth

+0

你想分享FB上的圖像? ,文字分別在FB上?請澄清一下。 –

+0

我只想分享一些關於FB的信息,我可以想象通過圖像**或**通過URL **或**將文本複製到剪貼板並通知它以便用戶在FB應用程序打開時粘貼它。我可以使用的其他任何技巧? – Hemanth

4

首先,以分享關於FB的文字,你必須使用FB SDK。

沒有FB SDK更好的選擇是去「OG」數據的專用網站,這將自動解決。藉此,您可以在需要更改時更改您的OG數據。

我建議你去找你的黑客號碼。但是,通過這種方法,FB允許用戶點擊鏈接並重定向到網站,你可以嘗試根據你的要求來處理這個問題。

我希望你對此有所澄清。

有關OG詳細信息,請檢查該Open Graph details

3

使用此功能,我希望這將有助於

public static void share(Context context, String text, String subject, String title, String dialogHeaderText) { 
    Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
    intent.setType("text/plain"); 
    intent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
    intent.putExtra(android.content.Intent.EXTRA_TEXT, text); 
    intent.putExtra(Intent.EXTRA_TITLE, title); 
    context.startActivity(Intent.createChooser(intent, dialogHeaderText)); 
} 
3

此代碼,您可以粘貼僅Facebook上的內容。 什麼ID要做的就是讓目前在手機中的所有應用程序的列表,並找到空位然後打開Facebook的應用程序,如果已經存在

 Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
     shareIntent.setType("text/plain"); 
     shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "text to be shared"); 
     PackageManager pm = getPackageManager(); 
     List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0); 
     for (final ResolveInfo app : activityList) { 
      if ((app.activityInfo.name).contains("facebook")) { 
       final ActivityInfo activity = app.activityInfo; 
       final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name); 
       shareIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
       shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
       shareIntent.setComponent(name); 
       startActivity(shareIntent); 
       break; 
      } 
     } 
+0

如果我按照正確的代碼進行操作,它將打開FB應用程序,其中沒有共享文本。用戶有責任輸入或粘貼文本。對? – Hemanth

+0

shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,「要共享的文本」);這條線是做什麼的,你有你自己的複製文本。 –

+1

當fb應用程序開放時,不會顯示'待共享'的EXTRA_TEXT文本。 – Hemanth

0

檢查:

Intent share=new Intent(Intent.ACTION_SEND); 
share.setType("text/plain"); 
share.putExtra(Intent.EXTRA_TEXT, "Some text you would like to share..."); 
share.setPackage("com.facebook.katana"); //Facebook App package 
startActivity(Intent.createChooser(share, "Title of the dialog the system will open")); 

你不需要的Facebook SDK使用此代碼......

爲了提高您的UX,你可以做一個檢查,如果潔具安裝Facebook應用(或FacebookLite APP)...

+0

這項工作爲Facebook精簡版,但不在facebook.katana包 – Hamza

相關問題