TinyWebDBでサーバー通信を行おう (5/5)
作成:2010-11-14 20:40
更新:2010-11-16 21:47
更新:2010-11-16 21:47
■サーバーからデータを受信する
続いて、サーバーから指定したタグの値を受け取るButton2の処理を作成しましょう。これも、やはりいくつかの処理が連携しながら実行されるようになっています。
まず、Button2.Clickでは、Notifier2.ShowTextDialogを呼び出し、取り出すタグ名を入力するダイアログを呼び出します。そして、OKして呼び出されるNotifier2.AfterTextInputでは、TinyWebDB1の「GetValue」を呼び出します。これは右側に取り出すタグ名をつなげて呼び出します。
問題なく値が得られると、TinyWebDB1の「GotValue」という処理が呼び出されます。これは右側に「tagFromWebDB」「valueFromWebDB」という2つの変数が連結されており、これらに得られたタグ名と値がそれぞれ保管されます。
後は、この値をTextBox1.Textに設定し、メッセージを表示するだけです。先のデータ送信の処理がわかっていれば、これもそれほど難しくはないでしょう。
この他に、もう1つだけ処理を用意しておきましょう。それはTinyWebDB1の「WebServiceError」というものです。これは、サーバーにアクセスしたとき、何らかのエラーが発生すると呼び出されます。ここで、渡されるmessageを表示するようにしておきます。何かトラブルが発生したら、これで知らせることができるというわけです。
TinyWebDBは、機能的にはTinyDBと同じですが、サーバーにアクセスするため、コールバックが多用されています。複数の処理を連携する仕組みをきっちりと頭に入れておきましょう。
サーバープログラミングなんてわからないよ、という人のために、テスト用のサーバーを公開します。TinyWebDBのServiceURLに、以下のアドレスを記入して使ってください。
(ただし、あくまで汎用の公開サーバーですので、データの安全は保証できません。他の人間がデータを書き換えたりする可能性も十分にありますので、あくまで試験用としてご利用ください)
http://tuyano-sample.appspot.com
まず、Button2.Clickでは、Notifier2.ShowTextDialogを呼び出し、取り出すタグ名を入力するダイアログを呼び出します。そして、OKして呼び出されるNotifier2.AfterTextInputでは、TinyWebDB1の「GetValue」を呼び出します。これは右側に取り出すタグ名をつなげて呼び出します。
問題なく値が得られると、TinyWebDB1の「GotValue」という処理が呼び出されます。これは右側に「tagFromWebDB」「valueFromWebDB」という2つの変数が連結されており、これらに得られたタグ名と値がそれぞれ保管されます。
後は、この値をTextBox1.Textに設定し、メッセージを表示するだけです。先のデータ送信の処理がわかっていれば、これもそれほど難しくはないでしょう。
この他に、もう1つだけ処理を用意しておきましょう。それはTinyWebDB1の「WebServiceError」というものです。これは、サーバーにアクセスしたとき、何らかのエラーが発生すると呼び出されます。ここで、渡されるmessageを表示するようにしておきます。何かトラブルが発生したら、これで知らせることができるというわけです。
TinyWebDBは、機能的にはTinyDBと同じですが、サーバーにアクセスするため、コールバックが多用されています。複数の処理を連携する仕組みをきっちりと頭に入れておきましょう。
※自分でサーバーをたてられない!という人のために
サーバープログラミングなんてわからないよ、という人のために、テスト用のサーバーを公開します。TinyWebDBのServiceURLに、以下のアドレスを記入して使ってください。
(ただし、あくまで汎用の公開サーバーですので、データの安全は保証できません。他の人間がデータを書き換えたりする可能性も十分にありますので、あくまで試験用としてご利用ください)
http://tuyano-sample.appspot.com
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※[Button2.Click]の内容 [Notifier2.ShowTextDialog][text メッセージ][text タイトル] ※[Notifier2.AfterTextInput][response1]の内容 [TinyWebDB1.GetValue][value response1] ※[TinyWebDB1.GotValue][tagFromWebDB][valueFromWebDB]の内容 [set TextBox1.Text to][valueFromWebDB] [Notifire2.ShowAlert][text メッセージ] ※[TinyWebDB1.WebServiceError][message]の内容 [Notifire1.ShowAlert][message]
※関連コンテンツ
「App InventorによるAndroid開発入門」に戻る