「Lineで送る」のテキストを改行する方法

2014年3月19日

スクリーンショット 2014-03-19 17.21.41

こんにちは、榊原です。
 
便利な「Lineで送る」ボタンですが、いろいろと制約があって、ちょっと手こずったので、記録を残しておきます。
 

1.文字数制限は関係ない

Lineでは、プレビューで生成できる簡単コード

<span>
<script type="text/javascript" src="//media.line.me/js/line-button.js?v=20140127" ></script>
<script type="text/javascript">
new media_line_me.LineButton({"pc":false,"lang":"ja","type":"a"});
</script>
</span>

 
と各書式を用意しておりますが、文字数が関係あるのは、簡単コードのみっぽいです。ちなみに、公式で送れるテキストは最大500文字といってますが、簡単コードの方がもっと短い文字数でもなぜかうまく動きませんでした。具体的には、自動的にボタンが隠れました。
それに対して、各書式(私は、http://line.me/からはじまる書式を利用しました)は、そんな文字数を気にしなくても大丈夫そうな感じです。
 
 

2.テキストを改行する方法

br/ でも、/n でもうまく改行できなかったので、どうやったものか、、、と悩んだのですが、公式コードの例で出ている「Lineで送る[改行]URL」では、なぜか改行されている。はじめは、技術仕様でhttpからはじまった場合、改行されるのかと思ったのですが、どうやら違うようで、エンコードされた文字列を読んでると、謎の「%0D%0A」という文字が!
どうやら、これがLineの改行コードなようです。ネットで検索したら、windowsの16進法表記の改行コード(0D 0A)のエンコードされたものなよう。
 
ですので、エンコードする時は、「0D 0A」もしくは「%0D%0A」をご利用ください。PHPだと、例えば

$linetext = str_replace("n", "%0D%0A", $linetext);

 
とかにしていただけたら、自然改行が改行コードに置き換えられます。
 
それでは、また。

slackチームに参加下さい

ng-onsenui2.slack.com

OnsenUI2(Angular2)について知見を共有する場です。Angular2に限ってOnsenUI2を議論できる場がなかったのでつくりました。これから使い始めるという方はぜひご参加ください。
https://ng-onsenui2.herokuapp.com/

Ionic2.slack.com

日本語情報が少ないのでこちらで知見を共有できればと思います。お陰様で参加者100名を超えました。ありがとうございます。
https://ionic2-ja.herokuapp.com