林檎の木の下で

iPhoneアプリやwebサービスの紹介など。ノンプログラマー、ただの主婦が奮闘してます。

【ノンプログラマーが作るTextwellアクション】その8 web上から特定のデータをTextwellに挿入するアクション

   

【ノンプログラマーが作るTextwellアクション】その8 web上から特定のデータをTextwellに挿入するアクションleave-188445_640

こんにちは、sakurako(@0518sakurako)です。

Javascriptでアクションを作ってテキスト上で作動させることができるテキストエディタ、Textwellのアクションを作る方法を紹介しています。今回は第8弾です。

今まで見てきたアクションはテキストを何らかの形に変換するものとテキストを出力するものでした。

今回はT.request()という関数を用いてweb上の情報をTextwellに挿入するというアクションを紹介します。

スポンサーリンク

Textwell

360円
(2015.07.03時点)
posted with ポチレバ

web上の情報をリクエストするT.request

デフォルトのアクション集にGetHTMLというアクションがあります。

このアクションのソースは次の通り。

var url = window.prompt( ‘Enter URL :’, ” );
if ( url ) {
T.request( {
url: url,
callback: function( response ) {
if ( response.status == 200 ) {
T( ‘insert’, {
text: response.responseText
} );
} else {
T( ‘error’, {
title: ‘Error’,
message: ‘Requested resource is not found.’
} );
};
}
} );
} else {
T( ‘done’ );
};

流れとしては最初にwindowオブジェクトのpromptメソッドでEnterURLという入力ダイアログを表示させます。このダイアログに入力されたURLを変数urlと指定します。

で、次に大きなif文があって入力値がurlならT.request以下に続きます。このif文は一番下のelseにつながっており、入力値がURL以外のものであった場合はT( ‘done’ )、つまり内蔵ブラウザであるウェブビューが何も起こらず閉じられます。

次にT.requestの中を見ていきます。

T.requestはリファレンスの中で次のような形を取ると解説されています。

T.request( {
url: [要求するurl],
type: ‘GET or POST’,
data: [パラメーター],
info: [オプションの値],
callback: [コールバックで行われる関数] {
if ( response.status == 200 ) { // 成功した時
成功した時に起こることを定義した関数;
} else { // 失敗した時
失敗した時に起こることを定義した関数;  };
}
} );

response statusはhttpステータスコードを意味し、200がリクエストが成功し、要求した値が返されることを意味します。

typeは大雑把に説明するとデータを受け取るGETと送るPOSTに分けられ、この値を指定しなければT.requestはGETとして動きます。

dataとinfoに値を入れることでurlで指定したurl内のdataとinfoの条件を満たすデータがcallbackで指定した動きをします。

これを前提として考えるとGetHTMLでは入力されたURLから返ってきたデータであるresponseTextはT(‘insert’)でカーソル位置に挿入されます。

またステータスコードが200以外、つまりデータの受取に失敗した場合は’Requested resource is not found.’というエラーメッセージが出ます。

うまく使えたらweb上からリンク引っ張ってきたりできそうだなあと思いつついまいちわからないところが多くて使えてませんが。

まとめ

この記事を書いていたらやっとXMLHttpRequestとかDOMとかぼんやりだけど分かり始めたような気がします。

いまだにObjectとかvalueとかいまいち概念がわからなくて「で、一体何を入れたら何を出力するの!?」みたいになって止まってます。

でも外部からもデータを引っ張ってくることができてしかも出力もできるTextwell、超スグレモノです。今更ながら実感してます。

次回は題名の通り少しでもアクションを作ろうと思っています。

 - iPhoneアプリ ,

   

スポンサードリンク

スポンサードリンク

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事