他のアプリとの連携を行うための手法として、カスタムURLスキームという機構が用意されています。
簡単にいえば、アプリ独自のスキーム(“hoge://fuga”というURLにおける”hoge”の部分)を定義し、
そのURLを別のアプリから開いた際、スキームを定義したアプリの起動とデータの送信を行うための機構となっています。
Biz/Browser HTが対応しているカスタムスキームは下記のとおりです。
・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 HT 1.2.6以降
・biz-browser-postevent://...
→ (後述)
biz-browserスキームでは、通常のhttp/httpsスキームや前述のcrsスキーム等と比べて、Biz/Browserをより細かく制御することができます。
○Root.Loginメソッド、他アプリ両方から呼び出し可能なURL
・biz-browser://
login - ログイン操作
?url=<url>
- [必須]ログイン先URL
¶m=<param>
- [オプション]ログインパラメータ。SYS.LoginParamにセットされます。
&proxy=<host:port>
- [オプション]プロキシサーバを"ホスト名:ポート番号"の形で指定します。
未指定時はOSの設定に従います
使用例
biz-browser://login?url=http://www.example.com/dir/login.crs biz-browser://login?url=http://www.example.com/dir/login.crs¶m=abc&proxy=127.0.0.1:8080
・biz-browser://
settings - Biz/Browser起動設定の変更
詳細はこちらを参照して下さい。
○他のアプリから呼び出しのみ可能なURL
・biz-browser://
postEvent - 起動中のBizのRootオブジェクトへのイベント発行。Biz未起動時は起動のみ実行。
?name=<CustomEvent>
- [必須]イベント名。「"On"+イベント名」のイベントハンドラにてハンドルできます。
&<key1>=<value1>
&<key2>=<value2>
…
&<keyN>=<valueN>
- [オプション]イベントオブジェクトの子オブジェクト(Stringクラス)の名前と値を指定します。
子オブジェクトは0個以上の任意の数を指定できます。
<keyN>にオブジェクト名として使用できない名前(予約語や記号等)を指定した場合は、その値は無視されます。
- (Biz/Browser HT 1.2.6以降)AndroidアプリからURLを指定して呼び出した場合、インテントの情報がイベントの子オブジェクトとして格納されます。
オブジェクト名はExtIntentとなります。インテントについては、Intentクラスを参照してください。
使用例
/* 他のアプリ(Safariや印刷用アプリ等)から呼び出されるURL */ biz-browser://postEvent?name=TestEvent&title=abc¶m=def /* イベントを受け取るCRSスクリプト */ /* Rootオブジェクトにイベントハンドラを定義 */ // { Function OnTestEvent(e) { /* タイトルに"abc", 本文に"def"がセットされたMessageBoxが表示されます */ MessageBox(e.param, e.title); /* インテントの情報はExtIntentとして格納されます */ MessageBox("Intent:" + e.ExtIntent.action + " / " + e.ExtIntent.data); } }
・biz-browser://
showForeground - Biz起動時は画面を前面に表示します。Biz未起動時は起動します。
○Root.Loginメソッドからのみ呼び出し可能なURL
・biz-browser://
debug - デバッグモードに移行します。詳しくはBiz/Designerのマニュアルを参照して下さい。
?host=<host>
- [必須]Biz/Designerが動作しているPCのホスト名(またはIPアドレス)。
&port=<port>
- [オプション]デバッグ用ポート番号。省略時は44080番に接続します。
biz-browser-posteventスキームは、他のアプリからの呼び出しのために使用します。biz-browserスキームとは、イベント名の指定方法が異なります。
Biz/Browserを呼び出すアプリの仕様に合わせて、使用するスキームを選んでください。
Biz/Browser HT 1.2.6以降で対応しています。
○他のアプリから呼び出しのみ可能なURL
・biz-browser-postevent://
<EventName> - 起動中のBizのRootオブジェクトへのイベント発行。Biz未起動時は起動のみ実行。イベント名はホスト部で指定します。
?<key1>=<value1>
&<key2>=<value2>
…
&<keyN>=<valueN>
- [オプション]イベントオブジェクトの子オブジェクト(Stringクラス)の名前と値を指定します。
子オブジェクトは0個以上の任意の数を指定できます。
<keyN>にオブジェクト名として使用できない名前(予約語や記号等)を指定した場合は、その値は無視されます。
-AndroidアプリからURLを指定して呼び出した場合、インテントの情報がイベントの子オブジェクトとして格納されます。
オブジェクト名はExtIntentとなります。インテントについては、Intentクラスを参照してください。
使用例
/* 他のアプリ(Safariや印刷用アプリ等)から呼び出されるURL */ biz-browser-postevent://TestEvent?title=abc¶m=def /* イベントを受け取るCRSスクリプト */ /* Rootオブジェクトにイベントハンドラを定義 */ // { Function OnTestEvent(e) { /* タイトルに"abc", 本文に"def"がセットされたMessageBoxが表示されます */ MessageBox(e.param, e.title); /* インテントの情報はExtIntentとして格納されます */ MessageBox("Intent:" + e.ExtIntent.action + " / " + e.ExtIntent.data); } }