ストレージコンポーネント

目次

CloudDB

インターネットに接続されたデータベースサーバーにデータを保存できる非表示コンポーネント(Redisソフトウェアを使用)。 これにより、アプリのユーザーは互いにデータを共有できます。 デフォルトでは、データはMITが管理するサーバーに保存されますが、独自のサーバーをセットアップして実行できます。 「RedisServer」プロパティと「RedisPort」プロパティを設定して、独自のサーバーにアクセスします。

プロパティ

ProjectIDこのCloudDBプロジェクトのProjectIDを取得します。RedisPort使用するRedisサーバーのポート。 デフォルトは6381RedisServerデータの保存に使用するRedisサーバー。 「DEFAULT」の設定は、MITサーバーが使用されることを意味します。Token (デザイナーのみ)このフィールドには、バックアップされたRedisサーバーへのログインに使用される認証トークンが含まれます。 「DEFAULT」サーバーの場合、この値を編集しないでください。システムが自動的に入力します。 システム管理者は、複数の人の複数のプロジェクト間でデータを共有するために使用できる特別な値を提供することもあります。 独自のRedisサーバーを使用している場合、サーバーの設定でパスワードを設定し、ここに入力します。UseSSL (デザイナーのみ)SSLを使用してCloudDB / Redisサーバーと通信するには、trueに設定します。 これは、「DEFAULT」サーバーに対してTrueに設定する必要があります。

イベント

CloudDBError(text message)CloudDB Redisサーバーとの通信中にエラーが発生したことを示します。DataChanged(text tag, any value)CloudDBプロジェクトのデータが変更されたことを示します。 更新されたタグと値を使用してイベントを起動します。FirstRemoved(any value)「RemoveFirstFromList」関数によってトリガーされるイベント。 引数「値」は、リストの最初にあったオブジェクトであり、現在は削除されています。GotValue(text tag, any value)GetValueリクエストが成功したことを示します。TagList(list value)既知のタグのリストを受信したときにトリガーされるイベント。 「GetTagList」関数とともに使用します。

方法

AppendValueToList(text tag, any itemToAdd)リストの最後に値をアトミックに追加します。 2つのデバイスがこの機能を同時に使用する場合、両方が追加され、データは失われません。ClearTag(text tag)CloudDBからタグを削除しますboolean CloudConnected()ネットワーク上にあり、CloudDBサーバーに接続できる可能性が高い場合はTrueを返します。GetTagList()このアプリケーションのタグのリストを取得します。 完了すると、既知のタグのリストで「TagList」イベントがトリガーされます。GetValue(text tag, any valueIfTagNotThere)GetValueは、指定されたタグの下に保存されている値を取得するようCloudDBに要求します。 タグの下に値が保存されていない場合、valueIfTagNotThereをGotValueに渡します。RemoveFirstFromList(text tag)リストの最初の要素を返し、アトミックに削除します。 2つのデバイスがこの関数を同時に使用する場合、1つは最初の要素を取得し、もう1つは2番目の要素を取得します。利用可能な要素がない場合はエラーになります。 要素が使用可能になると、「FirstRemoved」イベントがトリガーされます。StoreValue(text tag, any valueToStore)指定されたタグの下に指定された値を保存するようCloudDBに要求します。 値が「file:///」または「/ storage /」で始まる場合、CloudDBは値をファイル名として解釈し、指定されたファイルの内容を送信します。 ファイル拡張子は3文字である必要があります(例: “.png"、 “。wav")。 GotValueまたはDataChangedを介して受信すると、ファイルはデバイスのパブリックストレージに保存され、値には新しい場所が反映されます。

データファイル

データファイルコンポーネント

プロパティ

列名 現在読み込まれているソースファイルの列名を取得します。CSVファイルの場合、これは最初の行のエントリのリストを返します。JSONファイルの場合、これはJSONオブジェクトのキーのリストを返します。 現在読み込まれているソースファイルの列のリストを取得します。デフォルトスコープ ファイルコンポーネントを使用してアクセスされるファイルのデフォルトのスコープを指定します。ほとんどのアプリはAppスコープで動作するはずです。Legacyは、アプリのファイルアクセスに関する Android の新しい制約より前に作られたアプリに使用することができます。。 現在読み込まれているソースファイルの行のリストを取得します。ソースファイル データを解析するソースファイルを設定し、そのファイルを非同期に解析します。解析結果は、列、行、列名の各プロパティに格納されます。ファイルのフォーマットは、CSVまたはJSONのいずれかを想定しています。

イベント

無し

方法

ファイル読み込み(text ファイル名)データを読み込む元となるファイルを示します。ファイルの内容の形式はCSVまたはJSONが想定されています。SD カード上の特定のファイルから読み込むには、ファイル名の前に / を付けます(たとえば、/myFile.txt は /sdcard/myFile.txt というファイルを読み込みます)。アプリケーションに同梱されたアセットを読み込むには、ファイル名を //(スラッシュ 2 つ)で開始します(Companion でも機能します)。ファイル名がスラッシュで始まらない場合、アプリケーションのプライベートストレージ(パッケージ化されたアプリケーションの場合)、コンパニオンの場合は /sdcard/AppInventor/data から読み込まれます。

ファイル

ファイルを格納および取得するための非表示コンポーネント。 このコンポーネントを使用して、デバイス上のファイルを読み書きします。 デフォルトの動作では、アプリに関連付けられているプラ​​イベートデータディレクトリにファイルが書き込まれます。 コンパニオンは、デバッグを簡単にするために/ sdcard / AppInventor / dataにファイルを書き込みます。 ファイルパスがスラッシュ(/)で始まる場合、ファイルは/ sdcardを基準にして作成されます。 たとえば、ファイルを/myFile.txtに書き込むと、そのファイルは/sdcard/myFile.txtに書き込まれます。

プロパティ

無し

イベント

AfterFileSaved(text fileName)ファイルの内容が書き込まれたことを示すイベント。GotText(text text)ファイルの内容が読み取られたことを示すイベント。

方法

AppendToFile(text text, text fileName)ファイルの末尾にテキストを追加します。 ファイルが存在しない場合は作成します。 ファイルが書き込まれる場所については、SaveFileの下のヘルプテキストを参照してください。Delete(text fileName)ファイルをストレージから削除します。 SDカード内の特定のファイルを削除するには、ファイル名の前に/を付けます(たとえば、/ myFile.txtはファイル/sdcard/myFile.txtを削除します)。 ファイル名が/で始まっていない場合は、プログラムの専用ストレージにあるファイルが削除されます。 アセットファイルは削除できないため、//でファイルを開始するとエラーになります。ReadFrom(text fileName)ストレージ内のファイルからテキストを読み取ります。 SDカード上の特定のファイルから読み取るには、ファイル名の前に/を付けます(たとえば、/ myFile.txtは/sdcard/myFile.txtファイルを読み取ります)。 アプリケーションに同梱されているアセットを読むには(Companionでも機能します)、ファイル名の先頭に//(2つのスラッシュ)を付けます。 ファイル名がスラッシュで始まっていない場合、それはアプリケーションの専用ストレージ(パッケージ化されたアプリ用)とCompanion用の/ sdcard / AppInventor / dataから読み込まれます。SaveFile(text text, text fileName)テキストをファイルに保存します。 ファイル名がスラッシュ(/)で始まる場合、ファイルはSDカードに書き込まれます(例えば、/ myFile.txtに書き込むと、ファイルは/sdcard/myFile.txtに書き込まれます)。 ファイル名がスラッシュで始まらない場合は、電話の他のプログラムからアクセスできないプログラムのプライベートデータディレクトリに書き込まれます。 AIコンパニオンには、デバッグを容易にするためにこれらのファイルが/ sdcard / AppInventor / dataに書き込まれるという特別な例外があります。 ファイルが既に存在する場合、このブロックはファイルを上書きします。 ファイルにコンテンツを追加したい場合はappendブロックを使用してください。

スプレッドシート

スプレッドシートは、Google Sheets API を使用して Google Sheets ドキュメントからデータを受け渡しするための非表示コンポーネントです。このコンポーネントを使用するには、まず Google Developer Account が必要です。そしてその Google Developer Account の下に新しいプロジェクトを作成し、 そのプロジェクトで Google Sheets API を有効にし、 最後に Sheets API 用のサービスアカウントを作成しなければなりません。サービスアカウントの作成方法や、Google Sheets Component を使用するためのその他の関連情報は、 こちら を参照ください。行番号と列番号は1インデックスです。

プロパティ

アプリ名APIを呼び出す際に使用する、アプリケーションの名前。クレデンシャルJSON サービスアカウントの認証情報を含むJSONファイル。スプレッドシートID 編集したい Google Sheets ファイルの ID。スプレッドシートIDは、Google SheetsファイルのURLで確認できます。

イベント

エラーが起きたら(エラーメッセージ)APIコールがエラーになるたびにトリガーされます。エラーの詳細はエラーメッセージに記載されています。列を追加したら(列番号)テーブル上の値が更新されると呼び出される、列を追加のコールバック イベントです。さらに、これは新しい列の列番号を返します。行を追加したら(行番号)テーブル上の値が更新されると呼び出される、行を追加のコールバック イベントです。さらに、これは新しい行の行番号を返します。範囲をクリアしたら()テーブル上の値が更新されると呼び出される、範囲をクリアのコールバックイベント。列を削除したら()テーブル上の値が更新されると呼び出される、列を削除のコールバック イベントです。行を削除したら()テーブル上の値が更新されると呼び出される、行を削除のコールバック イベントです。セルに書き込んだら()テーブル上の値が更新されると呼び出される、セルに書き込むのコールバック イベントです。列に書き込んだら()テーブル上の値が更新されると呼び出される、列に書き込むのコールバック イベントです。範囲に書き込んだら()テーブル上の値が更新されると呼び出される、範囲に書き込むのコールバック イベントです。行に書き込んだら()テーブル上の値が更新されると呼び出される、行に書き込むのコールバック イベントです。セルを読みこんだら(セルデータ)セルを読み込むのコールバックイベントです。セルデータはセル内のテキスト値です。列を読みこんだら(列データリスト)列を読み込むのコールバックイベントです。列データリストは行番号の昇順に並んだテキストセル値のリストです。フィルターをかけた結果を読み込んだら(列の戻りリスト,データの戻りリスト)フィルターをかけて読み込むのコールバックイベントです。パラメータは列のリストです。範囲を読み込んだら(範囲データ)範囲を読み込むのコールバックイベントです。範囲データは行のリストです。行を読み込んだら(行データリスト)行を読み込むのコールバックイベントです。行データリストは列番号の昇順に並んだテキストセル値のリストです。シートを読み込んだら(データ)シートを読み込むのコールバックイベントです。データは行のリストです。

方法

列を追加(シート名, データ)データとして値のリストが与えられると、シートの次の空の列に値を追加します。常に最上部の行から始まり、下に向かって追加されます。完了すると列を追加したらをトリガーします。行を追加(シート名, データ)データとして値のリストが与えられると、シートの次の空の行に値を追加します。常に一番左の列から始まり、右に向かって追加されます。完了すると行を追加したらをトリガーします。範囲をクリア(シート名, セル範囲)指定された範囲のセルを空にします。完了すると範囲をクリアしたらイベントをトリガーします。セル番地を取得(行, 列)行と列の整数表現を、Google Sheetsで使われているA1-Notationに変換して、一つのセルに対応させます。例えば、行1、列2は「B1」という文字列に対応します。セル範囲を取得(行1, 列1, 行2, 列2)範囲の隅の行と列の整数表現を、Google Sheets で使用される A1-Notation に変換します。例えば、1行目、2列目から3行目、4列目までの範囲を選択すると、「B1:D3」という文字列に対応します。セルを読み込む(シート名, セル番地)指定されたシート名のページ上で、指定されたセル番地のセルを読み取り、セルを読み込んだらイベントをトリガします。列を読み込む(シート名, 列番号)指定されたシート名のページで、指定された列番号で列を読み取り、列を読み込んだらをトリガーします。範囲を読み込む(シート名, セル範囲)指定されたシート名のページで、指定されたセル範囲のセルを読み取り、範囲を読み込んだらをトリガーします。行を読み込む(シート名, 行番号)指定されたシート名のページで、指定された行番号で行を読み取り、行を読み込んだらをトリガーします。シートを読み込む(シート名)Google Sheets ドキュメント全体を読み込み、シートを読み込んだらをトリガーします。完全一致フィルターをかけて読み込む(シート名, 列ID, 値)与えられた列番号が与えられた値と一致する行について、Google Sheet をフィルタリングする。部分一致フィルターをかけて読み込む(シート名, 列ID, 値)指定した列番号の行が、指定した値文字列を含んでいるかどうかを Google Sheet にフィルタをかける。列を削除(シート名, 列番号)与えられた列番号の列をテーブルから削除します。これは列を消去するのではなく、完全に削除します。シートのグリッド ID は、Google Sheets ドキュメントの url の最後、"gid=" の直後に記載されています。完了すると、列を削除したらイベントが発生します。行を削除(シート名, 行番号)指定された行番号(1-インデックス)の行をテーブルから削除します。これは行を消去するのではなく、完全に削除します。シートのグリッド ID は、Google Sheets ドキュメントの url の最後、"gid=" の直後に記載されています。完了すると、行を削除したらイベントが発生します。セルに書き込む(シート名, セル番地, データ)データとしてテキストまたは数値が与えられると、その値をセルに書き込みます。セル内の既存のデータは、指定されたデータで上書きされます。完了するとセルに書き込んだらイベントをトリガーします。列に書き込む(シート名, 列番号, データ)データとして値のリストを与えると、指定された列番号の列に値を書き込み、既存の値を上から下へ上書きします。完了すると列に書き込んだらイベントをトリガします。範囲に書き込む(シート名, セル範囲, データ)データとしてリストのリストを与え、その値を範囲内のセルに書き込みます。範囲の行と列の数は、データの寸法と一致させる必要があります。このメソッドは、範囲内の既存のデータをオーバーライドします。完了すると、範囲に書き込んだらイベントがトリガーされます。行に書き込む(シート名, 行番号, データ)データとして値のリストを与えると、指定された行番号の行に値を書き込み、既存の値を左から右の順に上書きします。完了すると行に書き込んだらイベントをトリガします。

TinyDB

TinyDBは、アプリのデータを保存する非表示コンポーネントです。

App Inventorで作成されたアプリは実行されるたびに初期化されます。 つまり、アプリが変数の値を設定してからユーザーがそのアプリを終了した場合、そのアプリの次回の実行時にその変数の値は記憶されません。 対照的に、TinyDBはアプリの永続的なデータストアです。 TinyDBに保存されたデータは、アプリが実行されるたびに利用可能になります。 例としては、ハイスコアを保存し、ゲームがプレイされるたびにそれを取得するゲームがあります。

データ項目はタグ値で構成されています 。 データ項目を保存するには、データ項目を保存するタグを指定します。 タグはテキストブロックである必要があり、データに名前を付けます。 その後、特定のタグの下に格納されていたデータを取得できます。

TinyDBを使用して電話の2つの異なるアプリケーション間でデータをやり取りすることはできませんが、TinyDBを使用してマルチスクリーンアプリケーションの異なる画面間でデータを共有することはできます。

AI Companionを使用してアプリを開発している場合、そのCompanionを使用しているすべてのアプリは同じTinyDBを共有します。 アプリがパッケージ化されて電話機にインストールされると、その共有は表示されなくなります。 開発中は、新しいアプリで作業を始めるたびにCompanionアプリのデータを消去するように注意する必要があります。

プロパティ

Namespaceデータを格納するための名前空間 同じ名前空間プロパティを持つ同じアプリケーション内のすべてのTinyDBコンポーネントは、同じデータにアクセスします。各ネームスペースは、アプリ全体で共有される単一のデータストアを表します。 アプリ内に同じ名前空間を持つ複数のTinyDBコンポーネントがある場合、それらが異なる画面上にあっても、それらは同じデータストアを使用します。 アプリケーションに必要なデータストアが1つだけの場合は、ネームスペースを定義する必要はありません。

イベント

無し

方法

ClearAll()TinyDBのデータストア全体を消去します。ClearTag(text tag)与えられたタグを持つエントリを消去します。any GetTags()TinyDB内のすべてのタグのリストを返します。any GetValue(text tag, any valueIfTagNotThere)与えられたタグの下に格納されている値を取得します。 そのようなタグがない場合は、valueIfTagNotThereを返します。StoreValue(text tag, any valueToStore)与えられたタグの下に値を格納します。 アプリを再起動しても、ストレージは電話機に残ります。

TinyWebDB

情報を格納および取得するためにWebサービスと通信する不可視コンポーネント。カスタムTinyWebDBサービスの作成を参照してください

プロパティ

ServiceURLコンポーネントが通信するデータベースへのURL。

イベント

GotValue(text tagFromWebDB, any valueFromWebDB)GetValueサーバー要求が成功したことを示します。ValueStored()StoreValueサーバー要求が成功したことを示すイベント。WebServiceError(text message)Webサービスとの通信がエラーを通知したことを示します。

方法

GetValue(text tag)指定されたタグの下に格納されている値を取得するためにWebサービスに要求を送信します。 タグの下に値が格納されていない場合、Webサービスは何を返すかを決定する必要があります。 このコンポーネントは、返されるものをすべて受け入れます。StoreValue(text tag, any valueToStore)指定されたタグの下に指定された値を格納するようにWebサービスに要求を送信します。

レファレンス