表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

131/210

外部データ取り込み色々テスト中2

さて、前回、外部のJSONデータを意外に簡単に利用できそうだなと言う所で終わりました。


色々試す前に、ionicでこの方法はすんなり動くかと試してみたところ、ダメダメでした。


まず、home.page.htmlにスクリプトタグを直接書いてもダメで念のためにブラウザに表示されているページのソースコードを見ても記述した<script>タグは見当たりません。


という訳で、ここから先は調べものして追記と言う形になります。

(直接関係ないですがtsconfig.jsonのtsはTypeScriptの頭文字という事が判明)


まず利用はともかく、jsonpの読み込み完了まで持っていきました。


方法としては<script>タグの作成(srcも含む)とそれに対するonLoadイベントの追加をして見ました。

(ちょっと自信が無い)


関数を定義して

------------------------------------------------------------

 loadJS(src:string){

  let script = document.createElement('script');

  script.src = src;

  document.body.appendChild(script);

  script.onload = (event) => {

   console.log('jsonp is fully loaded' + src);

  };

 }

------------------------------------------------------------


ionViewDidEnter(){}内でアドレスを指定して実行すると、確かにコンソールログに表示されます。


ただ、ここで問題はこの中身を扱えるかという事です。


JSONPの中で定義した変数があっても、ionic内で定義したわけでは無いので"ionic serve"の実行時にエラーで落ちます。


なるほど、これはionic(type=angularなのでangular)のやり方で追加しないと使えそうもない気がします。


さて、そういう機能があるならばプロジェクトディレクトリのどこかにある訳で、angularの機能ならば、"node_modules\@angular"あたりを探すと"node_modules\@angular\common\http\index.d.ts"と言う、おそらくこれだろうと言うファイルが見つかりました。


余談ですが、たいていの機能は恐らくプロジェクト直下の"node_modules"の中にあるかなと思いますので、その中を探すのも一つの方法かと思います。


さて"node_modules\@angular\common\http\index.d.ts"ファイルを見ると、以下の記述がありました。


---------------------------------------------------------------

* ### JSONP Example

* ```

* requestJsonp(url, callback = 'callback') {

* return this.httpClient.jsonp(this.heroesURL, callback);

* }

* ```

---------------------------------------------------------------


このファイル内で定義してあるhttpClientと言うクラスを使えば、何とかなるような・・・


油断大敵で試してみます。




あっさり成功の訳もなく、ただ方向性は間違っていないようなので、うまいサンプルでも無いか調べてみます。


とりあえず理解していないcallbackからお勉強です。


以下のサイトで付け焼刃の知識を入手してみます。


JavaScriptの「コールバック関数」とは一体なんなのか

https://sbfl.net/blog/2019/02/08/javascript-callback-func/


今更ですが、ちゃんと理解していない事ばかりですね(反省)


上のサイト、読みやすいし面白く書いて有るのですが、ただ読んだだけで理解できるなら何事も苦労は無い訳でサンプルコードを参考に色々試してみます。



と、色々見ていくと今からならCallBackよりPromise(どちらも技術的手法)の方が良い?


見た感じ、あきらかにPromissの方が気持ちよく書けそうですし、今後はPromiseが主に使われそうな感じです。


いや、それを言ったらionic使うのってどうなの?となるかもですが・・・


脱線しましたが、プログラマー的にはどうやって必要な機能を実装するか?が重要なわけで今回はPromiseで実装するのが良いと判断したところで投稿です。


しかし進まないな・・・

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ