nexacro platformの基本配布には“Plugin配布”、“Launcher配布”、“exe配布”の3種類があります。この3種類の基本配布を組み合わせて、より高度な配布を行うことができます。
Plugin配布
Plugin配布はnexacro platformランタイムがWebブラウザに埋め込まれた状態でアプリケーションを実行するときに使用します。ユーザーがWebブラウザを脱していない状態で、他の作業と一緒に仕事を進めることができ、お気に入りに追加して再度アプリケーションにアクセスすることができます。
サービス管理者は、配布時、下記のようなディレクトリ構造で管理することができます。
Path | File / Folder | 説明 |
---|---|---|
./ | nexacroAX.html | インターネットエクスプローラの使用時の配布ページ |
./ | nexacroPlugin.html | Chrome、Firefox、Safariなどの使用時の配布ページ |
./ | nexacro14_SetupEngine_N.cab | インターネットエクスプローラの使用時のnexacro platformランタイムエンジン(Active X)をインストール |
./ | nexacro14_SetupEngine_N.exe | Chrome、Firefox、Safariなどの使用時にnexacro platformランタイムエンジン(プラグイン)をインストール |
./ | nexacro14_client_license.xml | 製品ライセンスファイル |
./Test/ | SampleADL.xadl.js | ADL(JavaScript) |
./Test/ | start.json | Bootstrap file |
./Test/ | [nexacro14lib] | コンポーネントライブラリフォルダ(JavaScript) |
./Test/ | [_theme_] | テーマフォルダ(JavaScript) |
./Test/ | [Base] | アプリケーションフォルダ(JavaScript) |
配布に必要なファイルは、「Generate」ではなく「Deploy」機能として作成する必要があります。nexacro studioの[Build>Deploy]メニューから必要な項目を選択して、配布ファイルを生成します。
「Deploy」オプションの中で「Merge JSON file」の項目は、必須選択項目です。
nexacro platformランタイムエンジンのインストール時に、ブラウザごとに配布方法が異なるため、以下のように使用するブラウザを確認し、適切なページに移動します。
<html> <head> <script language="javascript"> function fn_onload() { if ((navigator.userAgent.indexOf("MSIE") > -1) || ( navigator.userAgent.indexOf("Trident") != -1)) { window.location.href = "./nexacroAX.html"; } else { window.location.href = "./nexacroPlugin.html"; } } </script> </head> <body onload="fn_onload()"> </body> </html>
インストールと実行ページの場所とページ移動方式は、OS環境によって異なる場合があります。
配布ページ
配布ページはnexacro platformエンジンを実行するために、ウェブブラウザが最初に実行するHTMLファイルです。ファイル名は、開発時に自由に指定することができます。
nexacroAX.html
<HTML> <HEAD> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> <TITLE> Web Browser Embed nexacro platform Sample Page </TITLE> <SCRIPT LANGUAGE="javascript"> function fn_load() { // Bootstrapパスを指定します。 nexacroAXCtrl.bjson = "./Test/start.json"; // サービスKey値を設定します。 // url上のサービスの唯一の値である必要があります。 nexacroAXCtrl.key = "nexacro_Sample"; // nexacro platformエンジンを実行します。 nexacroAXCtrl.run(); } </SCRIPT> </HEAD> <BODY onload="fn_load()"> <SCRIPT LANGUAGE="javascript"> document.write('<OBJECT ID="nexacroAXCtrl" width="50%" height="50%" CLASSID="CLSID:3CF3951B-34BD-4E22-933B-AE2BE0FA8941" CodeBase="./nexacro14_SetupEngine_N.cab#VERSION=2014,7,11,2"/>'); </SCRIPT> </BODY> </HTML>
エンジンが最初にインストールされると、ウェブブラウザにインストールメッセージが表示され、ユーザーがインストールボタンをクリックすると、インストールが実行されます。
nexacroPlugin.html
インターネットエクスプローラではない場合には、プラグインをインストールするためのスクリプトを記述する必要があります。次のコードのいずれExistPlugin関数は、プラグインがインストールされたのかを確認し、インストールされていなければ、インストールファイルをダウンロードしてインストールするように説明します。
<HTML> <HEAD> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> <TITLE> Web Browser Embed nexacro platform Sample Page </TITLE> <SCRIPT LANGUAGE="javascript"> function fn_load() { if (ExistPlugin() == false) { shtml = '<p><ul>'; shtml += '<li>がコンテンツを表示するために使用するプラグインがありません。</li>'; shtml += '<li>プラグインをインストールするためには<a href="./nexacro14_SetupEngine_N.exe">[nexacro14_SetupEngine_N.exe]</a>をダウンロードした実行してください。</li>'; shtml += '</ul></p>'; document.writeln(shtml); } else { nexacroplugin.bjson = "./Test/start.json"; nexacroplugin.key = "nexacro_Sample"; nexacroplugin.launch(); } } function ExistPlugin() { var mimetype = navigator.mimeTypes["application/nexacro14-plugin"]; if (mimetype) { var enablePlugin = mimetype.enabledPlugin; if (enablePlugin) return true; else return false; } else { return false; } } </SCRIPT> </HEAD> <BODY onload="fn_load()"> <SCRIPT LANGUAGE="javascript"> document.write('<EMBED ID="nexacroAXCtrl" type="application/nexacro14-plugin" width="50%" height="50%"/>'); </SCRIPT> </BODY> </HTML>
SampleADL.xadlファイル
SampleADL.xadlは、サンプル応用プログラムを実行するための応用プログラムの配布及び実行環境の設定情報を格納しています。このファイルはnexacro studioにより管理されます。
以下はSampleADL.xadlの例題です。
<?xml version="1.0" encoding="utf-8"?> <ADL version="1.2"> <TypeDefinition url="default_typedef.xml"/> 1 <GlobalVariables url="globalvars.xml"/> 2 <Application id="nexacro_Sample" codepage="utf-8" licenseurl="./nexacro14_client_license.xml" …> 3 <Layout> 4 <MainFrame id="mainframe" …> <ChildFrame formurl="Base::SampleForm.xfdl"…/> 5 </MainFrame> </Layout> <ScreenInfo/> </Application> <Script><![CDATA[ ]]></Script> </ADL>
上記のファイルにより次の内容がわかります。
コンポーネントの配布情報がdefault_typedef.xmlに定義されていることを示します。
応用プログラムで使用するグローバル変数がglobalvars.xmlに保存されていることを示します。
応用プログラムのIDがnexacro_Sampleであることが確認できます。
アプリケーションのモデルは、MainFrameの下にChildFrameがある単一のフレーム形状です。
最初の画面に表示されるフォーム画面が“SampleForm.xfdl”であることが確認できます。
この他にも、様々な応用プログラムの環境についての情報があります。このファイルはnexacro studioが管理するファイルであるため、直接に編集しないことをお勧めします。
ライセンスファイルは、製品を購入する時に提供され、任意に変更すると、アプリケーションが正常に動作しないことがあります。
default_typedef.xmlファイル
default_typedef.xmlは、サンプル応用プログラムの実行のためのコンポーネントの配布情報を格納しています。また、開発者が開発したコンポーネントを配布する際にも使用されます。
以下はdefault_typedef.xmlの例題です。
<?xml version="1.0" encoding="utf-8"?> <TypeDefinition version="1.1"> <Modules defaultpath=""> <Module url="CompBase.json"/> <Module url="ComComp.json"/> <Module url="Grid.json"/> <Module url="DeviceAPI.json"/> </Modules> <Components> <Component type="JavaScript" id="Div" classname="nexacro.Div"/> <Component type="JavaScript" id="Button" classname="nexacro.Button"/> 1 <Component type="JavaScript" id="PopupDiv" classname="nexacro.PopupDiv"/> <Component type="JavaScript" id="Combo" classname="nexacro.Combo"/> <Component type="JavaScript" id="CheckBox" classname="nexacro.CheckBox"/> ... </Components> <Services> <Service prefixid="Base" type="form" url="./Base/" version="0" communicationversion="0"/> 2 </Services> </TypeDefinition>
上記のファイルを通じて、次の内容を分かられます。
Buttonコンポーネントの配布情報が含まれています。
詳細は、次のようです。
配布されるコンポーネントは、Buttonコンポーネントです。
Buttonコンポーネントを使用するためにはnexacro.Buttonとして定義されたJavaScriptモジュール(Button.js)が必要です。
Form urlのためのサービスグループを定義しました。
以来、Form名を指定するときに、「Base/Form名」を指定すると、urlが「http://127.0.0.1/Test/Base/Form名」に置き換えられます。
このファイルはnexacro studioに自動生成されるファイルであるため、直接に編集しないことをお勧めします。
Launcher配布
Launcher配布は、Webブラウザを使用せずに、nexacro platformランタイムでのみアプリケーションを実行するときに使用します。exe配布と異なる点は、nexacro platformランタイムを直接実行せずに、Launcherを利用して実行します。
サービス管理者は、配布時、下記のようなディレクトリ構造で管理することができます。
Path | File / Folder | 説明 |
---|---|---|
./ | SampleStart.html | インターネットエクスプローラの使用時のnexacro platformエンジンのインストールページ |
./ | SampleLaunch.html | インターネットエクスプローラの使用時のnexacro platformアプリケーションの実行ページ |
./ | nexacro14_Launcher_N.cab | インターネットエクスプローラの使用時のnexacro platformランチャー(Active X)インストール |
./ | nexacro14_SetupEngine_N.cab | インターネットエクスプローラの使用時のnexacro platformランタイムエンジン(Active X)をインストール |
./ | nexacro14_client_license.xml | 製品ライセンスファイル |
./Test/ | SampleADL.xadl.js | ADL(JavaScript) |
./Test/ | start.json | Bootstrap file |
./Test/ | [nexacro14lib] | コンポーネントライブラリフォルダ(JavaScript) |
./Test/ | [_theme_] | テーマフォルダ(JavaScript) |
./Test/ | [Base] | アプリケーションフォルダ(JavaScript) |
SampleStart.htmlファイル
Plugin配布と異なり、このファイルはnexacro platformの設置のみのために使用される HTMLファイルです。このファイルのファイル名は、開発者が自由に指定することができます。
以下の内容はこのファイルの例題です。
<HTML> <HEAD> <TITLE> nexacro platform Install Sample Page </TITLE> </HEAD> <SCRIPT LANGUAGE=javascript FOR=nexacroAXCtrl EVENT="error(errcode,errmsg)"> alert("errcode: " + errcode + "\nerrmsg: " + errmsg); </SCRIPT> <BODY> <SCRIPT LANGUAGE="JavaScript"> document.write('<OBJECT ID="nexacroAXCtrl" ' + 'CLASSID="CLSID:3CF3951B-34BD-4E22-933B-AE2BE0FA8941" width="0" height="0" ' + '"CODEBASE="./nexacro14_SetupEngine_N.cab#VERSION=2014,7,11,2" ' + 'onError="fn_onError()"> ' + '</OBJECT>'); </SCRIPT> </BODY> </HTML>
特別な実行命令はなく、<SCRIPT LANGUAGE="JavaScript"> ~ </SCRIPT>までのみ登録すればnexacro platformエンジンが設置されます。
SampleLauch.htmlファイル
SampleLaunch.htmlは、Launcherを駆動するために実行するHTMLファイルです。このファイルのファイル名は、開発者が自由に指定することができます。
以下の内容はこのファイルの例題です。
<HTML> <HEAD> <TITLE> nexacroLauncher Sample page </TITLE> <SCRIPT LANGUAGE="javascript"> function fn_load () { nexacroLauncher.bjson = "./Test/start.json"; 2 nexacroLauncher.key = "nexacro_Sample"; 3 nexacroLauncher.launch(); 4 } </SCRIPT> </HEAD> <SCRIPT LANGUAGE=javascript FOR=nexacroLauncher EVENT="error(errcode,errmsg)"> alert("errcode: " + errcode + "\nerrmsg: " + errmsg); </SCRIPT> <BODY onload="fn_load()"> <SCRIPT LANGUAGE="javascript"> document.write('<OBJECT ID="nexacroLauncher" ' + 'CLASSID="CLSID:812CB626-69B7-4FEB-B42F-E3BBFF53E23B" width="90%" height="90%" ' + 'CODEBASE="./nexacro14_Launcher_N.cab#VERSION=2014,7,11,2" ' + 'onError="fn_onError()">' 1 + '</OBJECT>'); </SCRIPT> </BODY> </HTML>
上記のファイルにより次の内容が確認できます。
Launcherを設置します。
サービスのキー値を設定します。
(Plugin配布時、nexacroAX.htmlファイルに指定されたkey設定値と同じ役割をします。)
Bootstrapパスを指定します。
Launcherによりnexacro platformエンジンを実行します。
SampleLaunch.htmlとSampleStart.htmlの統合
前で説明したSampleLaunch.htmlとSampleStart.htmlは、1つのファイルとして統合することができます。
以下は統合したファイルの例題です。
<HTML> <HEAD> <TITLE> nexacro platform Launcher execution </TITLE> <SCRIPT LANGUAGE="javascript"> function fn_load () { nexacroLauncher.bjson = "./Test/start.json"; nexacroLauncher.key = "nexacro_Sample"; nexacroLauncher.launch(); 3 } </SCRIPT> </HEAD> <SCRIPT LANGUAGE=javascript FOR=nexacroAXCtrl EVENT="error(errcode,errmsg)"> alert("errcode: " + errcode + "\nerrmsg: " + errmsg); </SCRIPT> <SCRIPT LANGUAGE=javascript FOR=nexacroLauncher EVENT="error(errcode,errmsg)"> alert("errcode: " + errcode + "\nerrmsg: " + errmsg); </SCRIPT> <BODY onload=" fn_load()"> <SCRIPT LANGUAGE="javascript"> document.write('<OBJECT ID="nexacroAXCtrl" ' + 'CLASSID="CLSID:3CF3951B-34BD-4E22-933B-AE2BE0FA8941" width="0" height="0" ' + '"CODEBASE="./nexacro14_SetupEngine_N.cab#VERSION=2014,7,11,2" >' + '</OBJECT>'); 1 document.write('<OBJECT ID="nexacroLauncher" ' + 'CLASSID="CLSID:812CB626-69B7-4FEB-B42F-E3BBFF53E23B" width="0" height="0" ' + '"CODEBASE="./nexacro14_Launcher_N.cab#VERSION=2014,7,11,2" >' + '</OBJECT>'); 2 </SCRIPT> </BODY> </HTML>
nexacro platformエンジンを設置します。
Launcherを設置します。
Launcherを実行します。
exe配布
exe配布はcabファイルを使用せずにnexacro platformエンジンを手動でインストールした後、アプリケーションを実行する場合に使用します。
通常のCDでアプリケーションを配布したり、インストールファイルをダウンロードする場合によく使われる方法です。但し、画面出力のためのnexacro platformコンポーネントは、HTTPサーバーを使用して配布されるため、別のHTTPサーバーを運用する必要があります。
Context root | ||
---|---|---|
SampleADL.xadl.js | ADL (JavaScript) | |
start.json | Bootstrap file | |
[コンポーネント] | コンポーネントライブラリフォルダ (JavaScript) | |
[_theme_] | テーマフォルダ(JavaScript) | |
[サービスグループ] | アプリケーションフォルダ(JavaScript) |
コマンドプロンプトでnexacro platformを実行
MS Windowsのコマンドプロンプトでnexacro platformエンジンを直接に実行します。
コマンドプロンプトで以下の通り入力すると、Launcherによりnexacro platformエンジンを起動させるのと同じです。
"C:\Program Files\nexacro\14\nexacro.exe" -K "nexacro_Sample" -S "http://127.0.0.1/Test/start.json"
- -K
Key値を指定します。Plugin配布時、SampleStart.htmlファイルに指定されたkey設定値と同じ役割をします。
- -S
Bootstarpパスを指定します。
ショートカットによる配布
この方法は、初めてウェブサーバーにより接近した使用者に“短縮アイコン”を生成し、その後、応用プログラムを実行する際に“短縮アイコン”を使用する方法で、“Launcher配布”と“exe配布”をミックスした形態です。
Context root | ||
---|---|---|
MakeShortcut.html | ||
SampleIconImage.ico | ||
nexacro14_SetupEngine_N.cab | ||
SampleADL.xadl.js | ADL (JavaScript) | |
start.json | Bootstrap file | |
[コンポーネント] | コンポーネントライブラリフォルダ(JavaScript) | |
[_theme_] | テーマフォルダJavaScript) | |
[サービスグループ] | アプリケーションフォルダJavaScript) |
MakeShortcut.htmlファイル
MakeShortcut.htmlは、nexacro platformエンジンを設置し応用プログラムを実行するためのショートカットを生成する内容を含んでいます。このファイルのファイル名は、開発者が自由に指定することができます。
以下の内容はこのファイルの例題です。
<HTML> <HEAD> <TITLE>Make shortcut Sample Page </TITLE> <SCRIPT LANGUAGE="javascript"> function fn_make_shortcut() { nexacroLauncher.key = "nexacro_Sample"; nexacroLauncher.bjson = " ./Test/start.json"; nexacroLauncher.makeshortcut("shortcut", "./SampleIconImage.ico", "desktop", false); } </SCRIPT> </HEAD> <BODY onload="fn_make_shortcut()"> <SCRIPT LANGUAGE="javascript"> document.write('<OBJECT ID="nexacroAXCtrl" ' + 'CLASSID="CLSID:3CF3951B-34BD-4E22-933B-AE2BE0FA8941" width="90%" height="90%" ' + '"CODEBASE="./nexacro14_SetupEngine_N.cab#VERSION=2014,7,11,2" >' + '</OBJECT>'); document.write('<OBJECT ID="nexacroLauncher" ' + 'CLASSID="CLSID:812CB626-69B7-4FEB-B42F-E3BBFF53E23B" ' + '"CODEBASE="./nexacro14_SetupEngine_N.cab#VERSION=2014,7,11,2" >' + '</OBJECT>'); </SCRIPT> </BODY> </HTML>
このページにアクセスしたウェブブラウザのユーザの端末機には、“shortcut”というショートカットが生成され、そのショートカットを実行するとnexacro platformエンジンが実行されます。
サードパーティモジュールの配布
nexacro platformランタイムでサードパーティの製品を使用する場合には、該当の製品をCabファイルで製作しなければなりません。
サードパーティモジュールの製作
nexacro platformはウェブブラウザが採用するCab設置方法を採用するため、ウェブブラウザで設置及び実行されるよう製作されたCabファイルはnexacro platformでも設置及び実行ができます。
しかし、必公認された機関の認証を受けたCabファイルの場合にのみ使用できますので、ご留意ください。
サードパーティモジュールの使用
Cabファイルで製作されたサードパーティモジュールは使用が簡単です。nexacro studioでフォームの開発時にOCXコンポーネントを使用し、該当コンポーネントのcodebaseプロパティにCabファイルのURLのみを登録します。