B!ボタンをアプリに組み込みやすくする、はてなブックマークiOS SDKを正式リリースしました - はてなブックマーク開発ブログ
でリリースされたはてなブックマークiOS SDKのUIコンポーネントを利用するTitaniumモジュールを作りました。
以下にMITライセンスでソースコードを公開しています。
https://github.com/laiso/titanium-hatenabookmark
SYNOPSIS
ブックマークするだけなら以下のようにして呼び出します(未認証の場合はログインページを一旦開きます)。
var hatenabookmark = require('so.lai.hatenabookmark'); hatenabookmark.setup({ consumer : '__CONSUMER_KEY__', secret : "__CONSUMER_SECRET__" }); if(!hatenabookmark.loggedIn){ hatenabookmark.authorize(); }else{ hatenabookmark.bookmark({ url : 'http://example.com/' }); }
※コンシュマーキーはあなたのOAuthアプリのものへ置き換えてください
インストール
https://github.com/laiso/titanium-hatenabookmark/releases
から配布ファイルをダウンロード
解凍してso.lai.hatenabookmark-iphone-*zipファイルと.bundleファイルをResources以下に配置します。
cp so.lai.hatenabookmark-iphone-0.1.zip ./Resources/iphone/ cp -a HTBResources.bundle Resources/iphone/
tiapp.xmlから有効にします。
<modules> <module platform="iphone">so.lai.hatenabookmark</module> </modules>
既知の問題
はてなブックマーク iOS SDKのログインUIは未認証時に呼び出しても自動でログイン画面へ遷移→ブックマークIへ戻る。という動作なのですが、Titaniumモジュールから呼び出すとこのログインが完了しない問題が発生しました。
いまいち原因不明だったので不本意だったのですが認証フロー必須というドキュメントにして運用でカバーしました。将来的に改善しましたら動作をあわせます。
Titaniumモジュール開発雑感
はじめて手を出したんですが、思ってたより数段楽に作れました。titanium.pyのスクリプトからXcodeで編集できるプロジェクトを生成してくれてXcode上からTitaniumアプリをビルドしてシミュレータでexample以下のJavaScriptでエンドトゥーエンドテストができます。
ただし、内部的にはObjective-C向けのデバッグ環境ではなくコマンドラインで通常のTitaniumアプリをビルドしているだけなのでLLDBなどは使えずプリントデバッグでした。まあモジュール開発はXcode単体でデバッグしてその後Titaniumモジュールとして結合するのが筋かもしれません。
なんにせよiOSアプリ開発者なら楽勝でしょう。以下のドキュメントが網羅されておりました。
お問い合わせ
非公式な個人プロジェクトなので株式会社はてなではなくid:laiso,@laiso,github:id:laisoあたりにお問合せください。まあ公式版モジュールもそのうち出るかもしれませんが。
One More Thing
Apache Cordavo(Adobe Phonegap)向けのプラグインも作っています。
https://github.com/laiso/cordova-plugin-hatenabookmark
が情熱が足りないので、プラグイン開発者ならまだしも公開して使ってもらう状態にはまでまだ至っておりません。
もし興味がある人がいましたら声をかけてください。返事はしません。
*1:まあ悪用されたら停止します