2011年11月19日土曜日

WindowsPhoneの初期化と通信でトラブルヽ(´Д`;)ノ

ちょっと失敗したので書いておく。
WindowsPhoneにおいて、通信は非同期処理しかサポートしていない。
ってのは有名な話だと思いますが、
OAuth認可の部分で少し失敗したのでメモしておく。

Access Tokenが切れていた場合、
Refresh Tokenを用いて再度トークンを取得してくる必要があります。

私はリフレッシュトークンを実装する前

・トークンが存在したら、アプリのメニュー画面
・トークンが存在しなかったら、ログイン画面

としていました。

これに
・トークンが存在しても、期限が切れていたらリフレッシュトークンで再発行処理
という部分を追加しました。

しかし、何度やってもResponseが返って来ませんでした。

結論から言うと既存処理の遷移の為、Defaultの画面が存在しませんでした。
なので画面用のスレッドが作成されず、
そのまま通信を行なってしまって、スレッドが同じになって、
同期処理とみなされていた。(なんかもう少し細かい話がありそうですけど)

って感じのようです。
Defaultを設定してあげて、そこから再発行をしたらすんなり動きました´ω`
この画面がよくありがちな、アプリのロゴを出す画面でして
ほぼ見えない画面なのですが、何かしっくりこないです。

※お陰でBackで終了するという処理も必要になりました。
本人が推奨はしてません


一旦APIキーのみでアクセスできる検索画面にして、
ユーザにログインボタンを提示する画面を作って無駄のないようにしようと考えています。

0 件のコメント: