6

Twitter では、表示されるかどうかはクライアントに依存するため、ユーザーはツイート内で改行を使用すべきではないと言っていることは知っていますが、ツイートを Twitter タイムライン aLa http://www.drawatweet.comに描画するアプリをコーディングしています。だから、その必要があります。

問題は、これを行うために考えられるすべての方法を試した後、ツイートを強制的に複数行に分割することはできないということです。彼らが投稿する方法を修正し、まったく同じ「改行」コードを送信して、drawatweet.com と同じように表示されないようにしました。

Twitter API と Twitter インテント ツイート ページを使用してみましたが、成功しませんでした。

もう 1 つの例は、メッセージを表示するために複数の行を使用するhttp://www.preservatweets.com/です。ここでも、同じメカニズムを使用していますが、新しい行が機能しません。

Twitterはこの「アプリ」に何らかの仕掛けがあり、リファラーによってチェックされているのではないかと考えるようになりました。おかしなことに聞こえるかもしれませんが、別の論理的な答えを見つけることができません。誰かがそれがどのように機能するか知っていますか?

アップデート

Twitterで改行を使う方法はありません。私がしなければならないことは、非常に大きな文字列 (内部にスペースなし) を生成し、両方の文字列が分割できない場合、新しい行 (またはスペース) によって新しい行が強制的に作成されることです。

事前に感謝ゴンザロ

4

2 に答える 2

16

これを行う最も簡単な方法は..

var msg = "This is a test message. \n is used for new line character.";
var twitterHref = "http://twitter.com/intent/tweet?text=" + escape(msg);

の href として動的に設定します<a/>

于 2013-10-02T13:47:16.147 に答える
3

Twitter の Web サイトでは、ツイートに新しい行が表示されることはありません。そのように見えるだけです。一部のクライアントは新しい行を表示しますが、Twitter は表示しません。スペースと同じように表示するだけです。ただし、実際の改行文字はツイートに残します。

drawatweet が機能しているように見えるのは、ワードラップが原因です。使用する文字や文字セットは関係ありません。また、使用する文字数も関係ありませ。ツイートの次の単語が長すぎて段落の幅に収まらない場合は、折り返されます。ブロック文字から「単語」(スペースを含まない文字列)を作成しましたが、任意の文字を使用できます。

これをテストするには、新しい行をスペースに置き換えます。それはまだラップします。2 行目にスペースを追加することもできます。2 行目の最初の部分が最初の行になるため、新しい行が保持されないことがわかります。ブロックを独自のキャラクターに置き換えると、それも機能します。

したがって、解決策は、彼らがそうであるように、それを偽造し、常に折り返すのに十分な長さの行を作成することです. 単一の「単語」を扱っている場合は、Unicode no-break space( %C2%A0) を使用して、折り返したくないスペースを置き換えることができます。これで短い行をパディングして、折り返すのに十分な長さにすることもできます。

デモ: jsフィドル

<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A123456789012345678901234567890%0A123456789012345678901234567890" target="_blank">long lines with \n - works!</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%20123456789012345678901234567890%20123456789012345678901234567890" target="_blank">long lines with spaces instead of \n - works! (same as \n)</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A12345678 9012345678901234567890%0A123456789012345678901234567890" target="_blank">long lines with \n - space in line - doesn't work</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A12345678%C2%A09012345678901234567890 %0A123456789012345678901234567890" target="_blank">long lines with \n - no-break space (%C2%A0) in line - works!</a><br />
<a href="https://twitter.com/intent/tweet?text=12345678901234567890%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%0A12345678901234567890%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%0A12345678901234567890" target="_blank">short lines with \n - no-break space (%C2%A0) padding - works!</a><br />
于 2013-02-27T21:48:34.007 に答える