古い記事
ランダムジャンプ
新しい記事
iPhone 用のはてなブックマークアプリ(はてなぶっくまーく for iPhone)は常用しているお気に入りアプリです。Safari 用のブックマークレットもあり、現在見ているページをはてブアプリに飛ばして簡単にブックマークを閲覧したり登録したりできて便利です。

ところが!

私は iCloud を使って iPhone, iPad, MacBook Air の間で Safari のブックマークを共有しています。どのデバイスでも同じブックマークが使えます。それゆえ、前述のはてブアプリ用のブックマークレットが問題になります。

(1) iPad では iPad 用のはてブアプリ(はてなブックマーク for iPad)があるのですが、そこには飛びません。ユニバーサルアプリじゃないからURLスキームが異なるようです。解決策として iPhone 用のはてブアプリを入れればOKなのですが、iPad で iPhone アプリを使うなんて解像度がしょぼいので嫌です。(追記130315: ユニバーサル化によりこの問題は解消しました。)
(2) MacBook の Safari では使えません(アプリがないから)。まあこれは仕方ありません。

はてな謹製のブックマークレットは単に必要な情報をURLスキーム「hatenabookmark:」に投げてるだけなのでデバイスによる分岐を行えば幸せになれそうです。

(1) iPad のときには iPad 用はてブアプリのURLスキームに投げたいところですが、URLスキームが分かりません。調べる気力がないので iPad のときは Web に投げることにします。(追記130315: ユニバーサル化によりこの問題は解消しました。)
(2) MacBook 等の iOS 以外のときも同様に Web に投げます。

ということで、iPhone のときは今まで通りアプリに投げ、そうでないときは Web に投げるように書き換えました。Web は閲覧ページへ飛びます。iPad アプリのURLスキームが判明したらそっちへ飛ばすように修正する予定です。(追記130315: ユニバーサル化により iPhone/iPad ではアプリ、そうでないときは Web に投げるようにしました。)

ユニバーサルはてブ Bookmarklet


javascript:(function(){
 if('createTouch' in document){
  location.href="hatenabookmark:/entry?url="
  +encodeURIComponent(location.href)
  +"&title="+encodeURIComponent(document.title)
  +"&backurl="+encodeURIComponent(location.href)
  +"&backtitle="+encodeURIComponent("Safari");
 }else{
  location.href="http://b.hatena.ne.jp/entry/"
  +location.href;
 }
})()


(旧版:
javascript:(function(){
 if(navigator.userAgent.match(/iPhone/i)) {
  location.href="hatenabookmark:/entry?url="
  +encodeURIComponent(location.href)
  +"&title="+encodeURIComponent(document.title)
  +"&backurl="+encodeURIComponent(location.href)
  +"&backtitle="+encodeURIComponent("Safari");
 }else{
  location.href="http://b.hatena.ne.jp/entry?url="
  +encodeURIComponent(location.href);
 }
})()



Safari に登録されているはてなブックマークのブックマークレットのURL部分を上記で置き換えればOK。

追記130305: はてなブックマークアプリのユニバーサル版が登場し、iPhone と iPad で安心して同じURLスキーマが使えるようになりました。そのため上記ブックマークレットを修正しました。修正前の様子はウェブ魚拓でどうぞ。