Project Circle Blog -4ページ目

メッセンジャーID

メッセンジャーで会話をする相手は事前に登録しておく必要があります。

MSNメッセンジャーならメールアドレスとかですね。


それは、登録時に取得した端末IDを利用します。

ただ、このIDは機種変更によって変更が出来ますので、

何らかの方法で引き継ぎの手段を用意しなければいけませんが、とりあえずは現状のまま進めます。


で、本題に戻して この端末IDをキーにメンバー登録を行って

その相手のオンライン状況を見れるようにするわけですね。


その為に、メッセンジャーを起動したときに 自分の端末ID(アプリ内では MessengerID と呼びます)を表示するようにしました。


メッセンジャーID

登録関係

ログイン処理などを実装するために、

とりあえず、ユーザ登録関係を実装することにします。


ユーザ登録関係は、アプリDL前に行って貰うことにします。


流れは下記のようになります。


トップページ

 ↓

メッセンジャーで使う名前入力

 ↓

このときに端末IDを取得(ログイン管理に使用)

 ↓

両方が正常入力の場合はDLページへ遷移


アプリを消してしまった場合を考えて、

既に登録済みの端末IDに対しては、再度アプリDLページに飛べるようにします。

お知らせ機能を実装。泣き別れに泣く

Project Circle からのお知らせをアプリ側で読むことが出来るようにする部分を作ります。


メニューの階層的には ウェルカム > お知らせ を選択した場合の処理です。

実行結果はこんな感じになりました。


お知らせ


これを作っているときに発生した問題が、いわゆる『泣き別れ』問題です。

『泣き別れ』とは、通常2バイトで表現される日本語ですが、

最初の1バイトと後ろの1バイトが別の行として処理してしまい(分割してしまい)、

文字化けを起こしてしまう問題です。


この場合、最初の3文字が『PJC』 だったため、

その行の最後に 2行目の最初の『ご』の1バイト目だけが残ってしまったような感じです。


コレを解消するためには、どうすればいいのか?

非常にめんどくさいですが、文字列の文字コードを見て、

その文字コードがASCIIコード(英数字)でしか使っていない文字コードならそれは確定!

1バイト目でしか使っていない文字コードならそれは1バイト目(リードバイト)で確定!

2バイト目でしか使っていない文字コードで、1文字前がリードバイトなら2バイト目(トレイルバイト)で確定!


というような事をする必要がありました。非常にめんどくさいですね。