9

Android 経由で Facebook に共有しようとしたことのある人なら誰でも知っているように、Facebook チームは共有のプロトコルを無視し、共有インテントで提供されたテキストを無視することを決定しました ( ACTION_SEND を介して Android アプリから Facebook でテキストを共有するを参照) 。

ただし、Twitter アプリはこれを回避する方法を見つけたようです。ツイートを見ているとき:

ツイッタービュー

ツイートの下にある共有アイコンをクリックすると、通常の共有ダイアログが表示され、Facebook を含むアプリのリストが表示されます。

Android 開発者を台無しにすることを決めた Facebook を含むすべての共有アイコン

Facebook をクリックすると、次のビューが表示されます。

くそーフェイスブック。 いまいましい。

これは完璧に見えます。明らかに、Twitter は、他の回答が提案しているように見える単なるリンク以上のものを送信しています。さらに、メッセージで共有する場合:

古き良きメッセージアプリ。 F___フェイスブック

テキストが正しく追加され、問題がないことがわかります。ツイッターはどうやってこれを機能させたのですか?

4

3 に答える 3

0

別のアプリから Facebook へのリンクを共有するときに事前入力テキストを含める方法を尋ねている場合、これは実際には Facebook のポリシーに直接違反しています -

「ユーザーメッセージパラメーターのすべてのコンテンツがユーザーによって入力されていることを確認してください。事前に入力しないでください。これには、投稿、メッセージ、コメント、およびキャプションが含まれます。」( https://developers.facebook.com/policy/ )

于 2014-05-05T04:39:13.853 に答える
0

問題を克服するために私がしたことは、少し厄介ですが便利です。

共有したいテキストをクリップボードにコピーし、

トーストメッセージ「テキストを貼り付け」、

クリップボードにコピーしています

@SuppressLint("NewApi")
private void copyToClipBoard(String data) 
{
    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) 
    {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
        clipboard.setText(data);
        Toast.makeText(context,"Paste text", Toast.LENGTH_SHORT).show();
    }
    else 
    {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); 
        android.content.ClipData clip = android.content.ClipData.newPlainText(type,data);
        clipboard.setPrimaryClip(clip);
        Toast.makeText(context, "Paste text", Toast.LENGTH_SHORT).show();
    }

}
于 2014-05-08T06:31:51.827 に答える