アプリケーション間の連携が可能な Android と違って、iPhone ではアプリ間で自由にデータをやり取りすることができません。ブラウザーで見ているサイトを Twitter でつぶやくことはもちろんできるのですが、連携される情報は決まっており、取捨選択したり自分好みのフォーマットにすることはできません。
そこで、Chrome for iOS にブックマークレットを書いて、見ているウェブサイトのタイトルと URL を取得し、echofon アプリの新規つぶやきに入力されるようにしていたのですが、なんだかうまく動かなくなってしまいました。
さて、どうしたものか。JavaScript が書けないおでこのショート奮闘記。
これまでのコードと想定した動作
上記は、WordPress のユーザー名 admin を変更してみるの記事を表示したところ。ここで、ブラウザのロケーションバーに「あああ」と入力することで…
「あああ」というタイトルにしたブックマークレットを呼び出せるようにしていました。
ブックマークレットのコードは以下の通り。
[js]javascript:window.location=%27echofon:///message?%27+”%20″+document.title+”%20″+encodeURI(window.location)[/js]
まぁまぁ笑うなかれ。JavaScript の魔術師とか、闇プログラマーとか、カリメロプログラマーとかな方にはちゃんちゃらおかしいコードかもしれませんけど、これでもがんばって書いたんですって。
ともかく上記のように書いたブックマークレットを選択すると、echofon が起動し、新規つぶやき入力に Chrome で表示していたサイトのタイトルと URL を入力した状態にできていたんです。
あれ、URL が取得できていない…?
ところが先日このWordPress 10周年記念イベント(WordBench 東京5月)で発表してきました #wp10をしたためて、iPhone からつぶやこうと思ったところ…
どうも URL がなかったらしい…。そうとは気づかずそのままつぶやいてしまったようで…
@odyssey ブログ…?URL…?
— しょうくんですよ! (@shokun0803) 2013年5月30日
とか
@odyssey おでせんせー、リンクどこどこ?w
— まがぞん (@jim0912) 2013年5月30日
とか
あー、おでこんは一発目のツイートに URL を添付し忘れてたのかー
— wokamoto (@wokamoto) 2013年5月30日
とかまで言われちゃうわけですよ。決して、決してぼくが忘れたわけではない! ブックマークレットが忘れたのだ!
Escape to the sky
さて原因はなんだろ、と何度もブックマークレットを動かしながらにらめっこ。
あれ、これもしかして…ページタイトル全部取得できていない…?
そうなのです。URL が取れてないだけでなく”| 8bitOdyssey.com” がない!つまりこれは途中で切れているのです。切れた後にあるのは #wp10。
ピコン! ©ひろましゃ
# をうまく処理できなくてここで落ちてるのかな。エスケープしてあげないといけないみたいですね。
[js]javascript:window.location=%27echofon:///message?%27+”%20″+encodeURIComponent(document.title)+”%20″+encodeURI(window.location)[/js]
これでどないじゃ〜!
決まった!(ドヤッ
Android くんがしっかりしてきたので出番がちょっと減ってきた iPhone ですが、もう少しこのブックマークレットで戦ってみようと思いますー(`・ω・´)
“おでこは JavaScript が書けない” への3件のフィードバック
[…] おでこは JavaScript が書けない […]
なんだか、この投稿のレイアウト崩れてないですか?
Twitter の埋め込みのせいっぽいけど、気にしたら負けだぜ(・∀・)v