Home News DOC Class DL Others Rice
Class  >  jsexecutor  >  SetData(string)
jsexecutor クラス : SetData(string)メソッド

説明

JavaScript に文字列を設定します。

構文

instance.SetData(string data)

引数

クラス名前説明
stringdataJavaScriptに渡すデータ。

返り値

無し。

サンプルコード

1:

window w;

2:

jsexecutor jse = w.CurrentJSExecutor;

3:

jse.SetData("example data"); // It sets a string to JavaScript environment.

注意

JavaScript と Rice が通信するために JavaScript 環境に公開されているホストオブジェクトに文字列を設定します。


JavaScript で通信データを取得するには二つの方法があります。

第一の方法は、window.cooker.external.GetData() の呼び出しです。以下のようになるでしょう。


let data = await window.cooker.external.GetData(); // This code will go well if it is in async function.


GetData() は非同期関数です。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()

Rice からのデータを JavaScript で受け取ります。

window.cooker.external.SetData(data)

JavaScript からデータを Rice に送ります。

window.cooker.external.Notice(data)

JavaScript から Rice の jsexecutor.Notice イベントを発火します。


この他に通信用のオブジェクトとして window.cooker.data が定義されています。※このオブジェクトは window.chrome.webview.hostObjects には存在しません。

Rice の jsexecutor.SetData(string) の引数は、window.cooker.external.GetData() のために保存されますが、window.cooker.data にも代入されます。

window.cooker.external.GetData() は非同期関数なので、データを受け取るのに様々な制約がありますが、window.cooker.data は、ただのオブジェクトですので簡単にアクセスすることが出来ます。

参照リンク

無し。

Copyright © Rice All rights reserved.