jsexecutor クラス : SetData(string)メソッド
説明
JavaScript に文字列を設定します。
構文
instance.SetData(string data)
引数
クラス | 名前 | 説明 |
string | data | JavaScriptに渡すデータ。 |
返り値
無し。
サンプルコード
1: | jsexecutor jse; // For Main-browser |
2: | jse.SetData("example data"); // It sets a string to JavaScript environment. |
注意
JavaScript と Rice が通信するために JavaScript 環境に公開されているホストオブジェクトに文字列を設定します。
JavaScript で通信データを取得するには二つの方法があります。
第一の方法は、window.cooker.external.GetData(token) の呼び出しです。以下のようになるでしょう。
let data = await window.cooker.external.GetData(token); // This code will go well if it is in async function.
GetData(token) は非同期関数です。JavaScript の非同期関数の振舞についてはここでは説明しませんが、データの取り出しには様々な制約があります。
第二の方法は、window.cooker.data へのアクセスです。以下のようになるでしょう。
let data = window.cooker.data;
window.cooker.data はデータを簡単に授受するために定義されたオブジェクトです。jsexecutor.SetData(string) を呼び出すと、引数は window.cooker.data にも代入されます。
ホストオブジェクトは以下の名前で JavaScript に公開されています。
window.cooker.external
window.chrome.webview.hostObjects.external
前者は後者の別名です。どちらを使っても同じように機能します。ここでは、window.cooker.external を例にして説明します。
window.cooker.external は以下の非同期関数を持ちます。
window.cooker.external.GetData(token) | Rice からのデータを JavaScript で受け取ります。 |
window.cooker.external.SetData(token,data) | JavaScript からデータを Rice に送ります。 |
window.cooker.external.Notice(token,data) | JavaScript から Rice の jsexecutor.Notice イベントを発火します。 |
この他に通信用のオブジェクトとして window.cooker.data が定義されています。※このオブジェクトは window.chrome.webview.hostObjects には存在しません。
Rice の jsexecutor.SetData(string) の引数は、window.cooker.external.GetData(token) のために保存されますが、window.cooker.data にも代入されます。
window.cooker.external.GetData(token) は非同期関数なので、データを受け取るのに様々な制約がありますが、window.cooker.data は、ただのオブジェクトですので簡単にアクセスすることが出来ます。
ホストオブジェクトについてはJavaScriptの拡張機能を参照してください。
参照リンク
無し。