前回の続き。
なでしこ3webkit版の特殊命令「内部情報取得」系の命令を使ってみます。
非同期命令の「内部情報取得時には」と、 そうじゃない「内部情報取得」があります。
触って分かったのですが、戻り値の型が違うので注意が必要です。
ここではwindows用のwebkit版v3.4.13を使用しています。 未来のバージョンでは仕様が変更になる可能性があります。
「内部情報取得時には」命令
まずは「内部情報取得した時」について見てみます。
サンプルでは対象を反復しているところをみるに、「対象」に返ってきて、辞書型であるようです。
//なでしこ3webkit版v3.4.13
内部情報取得した時には
対象をコンソール表示
ここまで。
実行結果
対象に辞書型で返ってくることが確認できました。 キーは以下の通り。
EXEパス,ユーザフォルダ、作業フォルダ、母艦幅、母艦高、起動ポート
辞書型なので
対象@"EXEパス"を表示
または
対象["EXEパス"]を表示
とすることで、webkit版の実行ファイルである nadesiko3.exe のフォルダパスが取得できます。
「内部情報取得」命令
非同期命令じゃないほうの「内部情報取得」を試してみましょう。
こうでしょ!
//なでしこ3webkit版v3.4.13
内部情報取得
それをコンソール表示
実行結果
エラーなく動きましたね。
では"EXEパス"を表示してみましょう。
//なでしこ3webkit版v3.4.13
内部情報取得
それ@"EXEパス"を表示
・実行結果
undefined(未定義)、ですね…?
よくよくみたらこの返ってきた値は…『文字列』ではないですか!
下記のように JSONデコード したら動きました。
//なでしこ3webkit版v3.4.13
内部情報取得 //JSON文字列が返る
それをJSONデコード
それ@"EXEパス"を表示
なでしこv1の母艦パスなどの、パス取得系が返す文字列には末尾に「\」がついていましたが、 内部情報取得系ののexeパスには末尾に「\」がないので注意します。
webkit版からnakoファイルを起動する
あらためて前回やりたかった「nadesiko3.exeの横にあるnakoファイルを起動」をしてみます。
//なでしこ3webkit版v3.4.13
//exeファイルの横にあるnakoファイルを起動するサンプル
内部情報取得 //JSON文字列が返る
それをJSONデコード
exeパスはそれ@"EXEパス"
nakoファイルパスは「{exeパス}\テスト.nako」 //exeパスのうしろに\が必要
ナデシコランタイムパスは「C:\Program Files (x86)\nadesiko_lang\vnako.exe」 //環境による
[ナデシコランタイムパス,nakoファイルパス]を起動 //[exeファイル, nakoファイル]を起動
「完了」と表示 //テスト.nakoを閉じたのちに実行される
まとめ
(webkit版v3.4.13・2023年7月現在)
・内部情報取得時には … 対象に辞書型のオブジェクトを返す
・内部情報取得 … それにJSON文字列を返す
バージョンで変わってくるかもしれないので、いじって確かめましょう!