Titanium MobileでAndroidからTweetする方法 ~続き~

February 22nd, 2011

mogya氏からパッチがうまく動かないというご指摘を頂いたので調査したところ、問題がボロボロと出てきた。

1.evalJS()で例外が発生した時に止まる

TitaniumMobile1.5.1リリース直後のコミットで修正されているevalJS()のバグの影響で、webViewを開いた直後に固まってしまう。Titaniumの今後のリリースでは問題ないはずなので、そのまま放置する。

2.認証ウィンドウでAllowを押しても先に進まない

oauth-adapterの実装由来で認証ウィンドウの後ろにパスワードを保存するかどうかのポップアップダイアログが出てきてしまうことが原因。手元でテストした時には既にその前の試行中に選択済みだったため問題に気がつかなかった。window.open()の位置をwebview追加の後に移動させたら解決した。

3.HTTPClient.openで同期通信を指定しても非同期通信を行ってしまうtitaniumのバグに起因するタイミングの問題

このバグさえ直ればもっとコードがすっきりするのに、そもそもoauth-adapterのapiの設計が同期通信を前提にしているので、無理やりになってしまう。titanium側にパッチを当てた方がよいかもしれない。

4.通信エラーパスにゴミコードが残っていた

コピペ&十分にテストしていなかったことがバレてしまった。反省。

とりあえずAndroidエミュレーターでは安定して動くようになったが、他の環境への副作用が分からないので他のテスト環境が揃うまでパッチは保留。Androidタブレットはさっき家に届いたみたい。iPhone用はSnow LeoperdにアップデートしないとTitaniumがサポートしているXCodeがインストールできないみたい。こっちでは英語版しか手に入らなさそうなんだけど日本で買ったMacBookに適用できるのか?

Leave a Reply

*