原色奈良阪

For IE10+ / Chrome 36+?

これは何?

C++とかのコードをJavaScriptにコンパイルしてしまうemscriptenというツールを使って華和梨をブラウザで動くようにしました

SAORIとかファイルいじりとか外部干渉するものを除いてDLL版華和梨でできることは全てできるはずです

library / demo files

demo code

resources

references

DEMO

一連のSHIORIの流れを手動操作できます。

kawarirc.kis

華和梨の初期化辞書ファイルkawarirc.kisを記述しましょう。

これはHTML5 FileSystem API上の"/home/web_user/kawarirc.kis"に保存されます。

これを書き終えたらSHIORIの起動をします。

load()

SHIORI load(dir)を実行します。

dirの値はディレクトリでいいはずですが、今回なぜかfilepath+"/kawarirc.kis"を呼んでくれないので、"/home/web_user/kawarirc.kis"を渡しています。修正しました。

このボタンは正確にはloadを実行する前にkawarirc.kisを保存してからload()しています。

RESULT:

request()

SHIORI request()を実行します。

いわゆるSHIORI/3.0のイベントはここで投げます。いろいろ投げてください。

unload()

SHIORI unload()を実行します。

RESULT:

all result console

つまるところ

既存ゴーストが動作するWebベースウェアは作成可能ということ。

API Documentation

kawari.jsを使う方法について。

kawari JS interface

kawari.jsについて

class Kawari

クラスKawariをエクスポートしています。


var kawari = new Kawari();

var Module = kawari.Module;

var FS = kawari.FS;

このModuleとFSの詳細についてはemscriptenのドキュメントをご覧ください。

Moduleからはload, unload, requestの各関数が呼べます。

kawarishiori.js

load, unload, requestの呼び出しにはポインタへのメモリ確保、文字コード変換など煩雑な手順が必要です。

これについてラップし、使いやすいインターフェースを提供します。

依存

kawari.jsとencoding.jsを先に読み込んでください。


<script src="encoding.js"></script>

<script src="kawari.js"></script>

<script src="kawarishiori.js"></script>

<script>

var kawarishiori = new KawariShiori();

var Module = kawarishiori.Module;

var FS = kawarishiori.FS;

</script>

class KawariShiori

load(dirpath)

load()です。なぜかemscripten KAWARIはload時のdirpathに'/kawarirc.kis'を付加しないファイルを読みに行くみたいなので、下記のような指定をすることになると思います。


var ret = kawarishiori.load('/home/web_user/kawarirc.kis');

unload()

unload()です。


var ret = kawarishiori.unload();

request(str)

request()です。


var response = kawarishiori.request('GET SHIORI/3.0\r\nID: version\r\n\r\n');

実例

test.js (demo code)をご覧ください。