カスタムURLスキームを用いた起動、および実行制御¶
他のアプリとの連携を行うための手法として、OSにはカスタムURLスキームという機構が用意されています。
Biz/Browser DTはインストール時に下記のカスタムURLスキームをOSに登録します。
下記のURLスキームを用い、WebブラウザやエクスプローラーからURLを開こうとした場合、すでにBiz/Browser DTが実行中の場合はそのBiz/Browser DTへ、まだBiz/Browser DTが実行されていない場合、新たにBiz/Browser DTが起動された上、URLに記述された指示に従い動作を行います。
crs://www.example.com/hoge.crs
http://www.example.com/hoge.crs に対するログインと解釈されます。
crs-http://www.example.com/hoge.crs
http://www.example.com/hoge.crs (crs://と同一)に対するログインと解釈されます。
crs-https://www.example.com/hoge.crs
https://www.example.com/hoge.crsに対するログインと解釈されます。
biz-browser://...
- (後述)
「biz-browser」スキーム¶
biz-browserスキームでは、通常のhttp/httpsスキームや前述のcrsスキーム等と比べて、Biz/Browserをより細かく制御することができます。
biz-browser://login
ログイン操作をおこないます。
?url=<url>
[必須]ログイン先URL
&proxy=<host:port>
[オプション]プロキシサーバを"ホスト名:ポート番号"の形で指定します。
未指定時はOSの設定に従います
&target=<self/tab/window>
[オプション]loginメソッドのオプションと同じく読み込み先を指定します。
未指定時はtabとみなします
&loglevel=<1~7>
[オプション]ログの出力レベルを指定します。コマンドライン引数"-logLevel"と同等の指定が可能です。
1=v、2=d、3=i、4=w、5=e、6=f、7=s
&<key1>=<value1>
&<key2>=<value2>
…
&<keyN>=<valueN>
[オプション]ログインパラメータとしてApplicationへセットされApplication.getPropertyメソッドで値を取得できます。
<keyN>にオブジェクト名として使用できない名前(予約語や記号等)を指定した場合は、その値は無視されます。
使用例
biz-browser://login?url=http://www.example.com/dir/login.crs
biz-browser://login?url=http://www.example.com/dir/login.crs&proxy=127.0.0.1:8080&target=window&userid=test&password=pass
biz-browser://postMessage
Application.postInterContextMessageと同等の動作を行います。
Biz/Browser DTが実行されていない場合はurlパラメータで指定されたURLを、urlパラメータ省略時はデフォルトのログイン画面の起動を行います。
?serviceid=<サービスID>
[必須]サービスID。
&portid=<ポートID>
[オプション]ポートID、ワイルドカードとして"*"が使用できます。
未指定時は"*"とみなします
&url=<url>
[オプション]Biz/Browser DTが実行されていない場合のログイン先URL
&<key1>=<value1>
&<key2>=<value2>
…
&<keyN>=<valueN>
[オプション]InterContextMessageイベントのe.paramへ値が格納されます。
子オブジェクトは0個以上の任意の数を指定できます。
<keyN>にオブジェクト名として使用できない名前(予約語や記号等)を指定した場合は、その値は無視されます。
使用例
biz-browser://postMessage?serviceid=CompanyService&portid=SalesSystem&command=setdata&amount=100000&quantity=50&url=http://appserver/app1/menu.crs
# イベントを受け取るCRSスクリプト例
# 現在の実行コンテキストへサービスIDとポートIDを設定
Application.setCurrentContextInfo("CompanyService", "SalesSystem");
# Rootオブジェクトにイベントハンドラを定義
// {
function onInterContextMessaget(e) {
if (e.param["command"] == "setdata") {
# データ設定を行う関数
setData(e.param["amount"], e.param["quantity"]);
}
}
}
biz-browser://showForeground
Biz/Browser DTがすでに実行されている場合は、Biz/Browser DTを前面に表示します。
Biz/Browser DTが実行されていない場合はurlパラメータで指定されたURLを、urlパラメータ省略時はデフォルトのログイン画面の起動を行います。
?url=<url>
[オプション]Biz/Browser DTが実行されていない場合のログイン先URL