なでしこ3webkit版には特殊命令がいくつか実装されています。
ブラウザ版などにないwebkit版専用の命令です。
特殊命令のなかに非同期命令の「起動時には」と非同期でない版「起動」命令があるので使ってみます。
なでしこ1のプログラムであるnakoファイルを「起動」してみましょう!
ここではwindows用のwebkit版v3.4.13を使用しています。
未来のバージョンでは仕様が変更になる可能性があります。
なでしこ3webkit版とは
ダウンロードはここ。
win-nako3-chrome.zipのほうはなぜか起動後に落ちるので
win-nako3-webview2.zipを解凍して使います。(2023年7月現在うちの環境にて)
中にはexeファイルとwebappフォルダがあります。 exeファイルを実行すると普通のアプリのようにウィンドウが開きます。
ウィンドウの中身はブラウザのような部品でできており、フォルダ内のindex.htmlの内容が表示されます。
webapp内のmain.nako3に書いたなでしこ3のプログラムが動きます。
webkit版専用の命令について
なでしこ3webkit版にはブラウザ版にはない特殊命令があります。
公式の解説はこのへんに。
特殊命令にはwebkit版v3.4.13になって増えたものがあります。
以前のバージョンは非同期の命令(~~時には)だけでした。
マニュアル類はその頃に書かれたもののようで、非同期じゃない命令のマニュアルはないようです。(2023年7月現在)
この特殊命令のうち、「起動した時には」と「起動」について解説していきます。
「内部情報取得」もやろうとしたけど次回にまわします。
「起動」命令の引数に気を付ける
注意:なでしこ3マニュアルには「起動」(コンソール版用)の命令が載っていますが、webkit版の「起動」は別の実装となっています
非同期命令の「起動した時には」と、
そうじゃない「起動」があります。
webkit版のサンプルでは電卓を起動しています。windows版だとこう書く模様。
//なでしこ3webkit版v3.4.13
「calc」を起動した時には
「電卓起動」と表示。
ここまで。
…このサンプルは非同期実行の命令、「起動した時には」ですね。 「起動」のサンプルはないようです。
やってみましょう。こうでしょ!
「calc」を起動
実行結果
[実行時エラー]main.nako3(22行目): json: cannot unmarshal string into Go value of type []string
は?
エラーが異国語で書かれているのではっきりわかりませんが「stringをunmarshalできませーん」と言っている気がします。
unmarshalとは
Unmarshalは、ネットワーク越しに送信されたデータをGoの構造体に変換します。
Unmarshalは、JSON形式で受け取った値を指定した構造体に格納することができます。
第1引数にJSON形式のデータを、第2引数に格納したい構造体を指定します。2022/10/02
よし、わからない。
わからないのででたらめに試した結果
["calc"]を起動
と起動の引数を配列にすると動くことがわかりました。
ついでに ["calc"]を起動した時には
も動くことがわかりました。
テキストファイルやnakoファイルを起動する
次はテキストファイルを起動してみましょう。
なでしこ1ではテキストファイルのフルパスを起動するだけでした。
//なでしこ1
"C:\test\aaa.txt"を起動
なでしこ3webkit版では配列に実行ファイルとテキストファイルを指定する必要があるようです。
//なでしこ3webkit版v3.4.13
["notepad","C:\test\aaa.txt"]を起動した時には //非同期命令
//なでしこ3webkit版v3.4.13
["notepad","C:\test\aaa.txt"]を起動
nakoファイルを起動する場合は
[vnako.exeのパス,nakoファイルのパス]を起動
でできるようです。
vnako.exeのパスは、なでしこv1のエディタを起動し、
//なでしこ1
ナデシコランタイムパスを言う
を実行することで取得できます。
//なでしこ3webkit版v3.4.13
ナデシコランタイムパスは「C:\Program Files (x86)\nadesiko_lang\vnako.exe」 //環境による
nakoファイルパスは「C:\test\テスト.nako」
[ナデシコランタイムパス,nakoファイルパス]を起動 //なでしこv1起動待機に相当?
「起動しました」と表示 //ウィンドウを閉じてから表示される
まとめ
(なでしこ3webkit版v3.4.13)
・「起動した時には」(引数は文字列か配列)
「calc」を起動した時には //文字列 うごく
["calc"]を起動した時には //配列 うごく
・「起動」(引数が文字列だとエラー)
「calc」を起動 //文字列 エラー json: cannot unmarshal string into Go value of type []string
["calc"]を起動 //配列 うごく
・テキストファイルを起動する場合、配列にする
["notepad","C:\test\aaa.txt"]を起動
・nakoファイルを起動する場合、ランタイムのvnako.exeのパスとnakoファイルのパスを配列にする
[ナデシコランタイムパス,nakoファイルパス]を起動