Facebookは、Facebook SDKを使用しない限り、Intentを介したテキストの共有を許可しないため、これを実現する方法を探しています。
私が使用できる3つのハックを考えることができます:
1)Facebookでは画像共有が許可されているため、共有テキストが描画されたBitmap
を生成し、Intent
を使用して画像を共有できます。
2)Facebookでは、URLの共有が許可されています。このため、共有中にページのHead
も表示されます。サーバーで専用ページをホストし、URLのパラメーターとして値を渡し、それを使用してHead
を生成できます(PHPの経験はありませんが、これは可能だと思います)
3)テキストをクリップボードにコピーし、これをユーザーに通知します。
[〜#〜]または[〜#〜]
3つすべての組み合わせを使用します。
Facebook sdkを使用せずにFacebookでコンテンツを共有するより良い方法を教えていただけますか?
前もって感謝します。
Android shareIntent
。]を使用して、Facebookでテキストのみを共有する方法はありません。
共有リンク機能を使用してFacebook SDKを介してのみ可能です。
Facebookは、画像がある場合、意図からの余分なテキストを単に無視します。画像を共有できますが、テキストコンテンツを共有することはできません。
残念ながら、Facebookの共有インテントは、http://のプレフィックスが付いた単一のURLのみを受け取り、追加のテキストメッセージは受け取りません。実際、facebookはテキストコンテンツを取り除き、URL /リンクのみを許可します。それは設計によるものであり、それを制御することはできません。
これは動作します
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 SDKを使用しているのは、Facebookでテキストを共有できる唯一の方法です。
参照リンク
facebookのAndroid共有インテント-テキストとリンクの共有
Android Share Intent を介してテキストをリンクと共有できません
この関数を使用して、それが役立つことを願っています
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));
}
まず、FBでテキストを共有するには、FB SDKを使用する必要があります。
FB SDKを使用しない場合は、「OG」データを含む専用のWebサイトにアクセスすることをお勧めします。これは自動的に解決されます。これにより、変更が必要になったときにOGデータを変更できます。
ハック番号2に進むことをお勧めします。しかし、このアプローチでは、FBはユーザーがリンクをクリックしてWebサイトにリダイレクトできるようにするため、要件に応じてこれを処理することができます。
これで明確になることを願っています。
OGの詳細については、こちらを確認してください グラフの詳細を開く
このコードを使用すると、facebookにのみコンテンツを貼り付けることができます。あなたの携帯電話に存在するすべてのアプリのリストを取得し、すでに存在している場合は開いている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;
}
}
これをチェックして :
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 App(またはFacebookLite App)ウェアがインストールされているかどうかを確認できます...
ネイティブインテントを使用する場合、インテントからのデータを使用するかどうかは、ユーザーが共有するアプリ次第です。
これは既知のバグであり、facebookはこのバグをウィッシュリストに追加しました。たぶん、彼らはそれを修正しようとしていません。これは、人々がFB SDKを使用できるようにするためのものです。このリンクを参照してください http://forum.developers.facebook.net/viewtopic.php?id=939 およびこれ post