B1WS-1129-01(00)
2013
年
10
月
FUJITSU Software
Interstage Mobile Application Server V1.0.0
まえがき
本書の目的
本書は、Interstage Mobile Application Serverが提供するAPIについて説明します。
本書の読者
本書はInterstage Mobile Application Serverを利用したアプリケーションの設計・開発を行う方を対象としています。 本書を読むにあたっては、以下の知識が必要です。
・
使用するOSに関する基本的な知識・
インターネットに関する基本的な知識・
スマートデバイスに関する基本的な知識・
Interstage Mobile Application Serverの基本的な知識・
アプリケーションサーバ管理に関する基本的な知識・
アプリケーション開発に関する基本的な知識・
HTML5、JavaScript、CSS3の知識本書の構成
本マニュアルは、次の構成になっています。 第1章 APIリファレンスInterstage Mobile Application Serverが提供するAPIについて説明しています。
オペレーティングシステム表記
本書では、オペレーティングシステムを以下のように略記しています。
正式名称 略称
Microsoft(R) Windows Server(R) 2012 Datacenter Windows Server 2012 Windows Microsoft(R) Windows Server(R) 2012 Standard
Microsoft(R) Windows Server(R) 2012 Essentials Microsoft(R) Windows Server(R) 2012 Foundation
Microsoft(R) Windows Server(R) 2008 R2 Standard Windows Server 2008 R2 Microsoft(R) Windows Server(R) 2008 R2 Enterprise
商標
・
Access、Excel、PowerPointおよびWordは、米国Microsoft Corporationの製品です。・
Adobe、Acrobat、Adobe Reader、Acrobat Reader、Adobe ロゴ、Adobe AIR、Flash、Flash Playerは、Adobe Systems Incorporatedの米国ならびに他の国における商標または登録商標です。
・
Androidは、Google Inc. の登録商標です。・
Eclipseは、開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。
・
Internet Explorer、Microsoft Internet Explorer ロゴ、Microsoft、Windows、Windows Serverまたはその他のマイクロソフト製品の名・
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商 品名等は各社の商標または登録商標である場合があります。・
本書におけるその他名称については、各社の登録商標または商標です。 なお、本書では、システム名または製品名に付記される登録表示((TM)または(R))は、省略しています。輸出管理規制
本ドキュメントを輸出または提供する場合は、外国為替、外国貿易法および米国輸出管理関連法規等の規制をご確認の上、必要な 手続きをおとりください。お願い
・
このマニュアルは、予告なしに変更されることがあります。・
このマニュアルを無断で他に転用しないようお願いします。・
このマニュアルに記載されたデータの使用に起因する第三者の特許権およびその他の権利の侵害については、当社はその責を 負いません。発行年月日
2013年10月著作権
目 次
第1章 APIリファレンス...1 1.1 アプリ実行...1 1.1.1 addEventListener...1 1.1.2 removeAppData...2 1.1.3 abortApp...3 1.1.4 使用例...3 1.2 認証...4 1.2.1 getUserID...4 1.2.2 isOnlineFlag...5 1.2.3 使用例...5 1.3 データ暗号化API(SecureLocalStorage)...6 1.3.1 length...6 1.3.2 key...6 1.3.3 setItem...7 1.3.4 getItem...7 1.3.5 removeItem...8 1.3.6 clear...8 1.3.7 使用例...9 1.4 通信...10 1.4.1 enableAsyncComm...10 1.4.2 processServerResponse...10 1.4.3 使用例...11 1.5 ARアプリケーション連携...11 1.5.1 start...11 1.5.2 使用例...13 1.6 Cordova API...13第
1
章
API
リファレンス
本章では、Interstage Mobile Application Serverが提供するAPIについて説明します。
APIを利用するためには、以下のJavaScriptファイルをhtmlファイルでインクルードしてください。
・
imaps-バージョン.js・
cordova-バージョン.js JavaScriptファイルは以下に格納されています。IMAPSアプリの開発資産と同じフォルダへコピーしてください。 <製品インストールフォルダ>\MAPS\development注意
Interstage Mobile Application Serverが提供するAPIは、Cordovaのdevicereadyイベントの受信後に呼び出してください。devicereadyイ
ベントの受信前に呼び出した場合は、正常に動作しません。
devicereadyイベントの受信は、以下のようにaddEventListenerでリスナーを追加します。
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { // リスナーの処理 }
注意
backbuttonイベントは、index.htmlには通知されません。index.htmlでバックキーまたはバックアイコンが押された場合はIMAPSエージェ ントの[ホーム]画面へ遷移します。 Storage APIで保存したデータは、IMAPSクライアントアプリケーション間で共有されます。1.1
アプリ実行
1.1.1 addEventListener
IMAPSクライアントアプリケーションのイベントリスナーを登録します。呼出し形式
imaps.app.addEventListener(event, callback)引数
引数 説明 event 受信するイベントを指定します。 callback イベント発生時に呼び出すコールバック関数を指定します。 指定可能なイベント、コールバックで行う処理例は、以下の通りです。イベント コールバック処理 説明 background 処理を停止してください。 終了に備えて、揮発性データの永続化を行って ください。 利用者の操作により、実行中(フォアグラウンド)のIMAPS クライアントアプリケーションが実行中(バックグラウンド)に なるイベントです。 IMAPSクライアントアプリケーションが停止する前にも発 生します(強制終了の前には発生しません)。 foreground 必要に応じて、永続したデータの復元等を行っ てください。 利用者の操作により、実行中(バックグラウンド)のIMAPS クライアントアプリケーションが実行中(フォアグラウンド)に なるイベントです。
戻り値
なしポイント
イベントに上記以外を指定した場合、コールバックにnullを指定した場合は、イベント通知を行いません。注意
IMAPSクライアントアプリケーションの終了操作を行った際に、コールバック処理がIMAPSアプリ終了処理のタイムアウト時間(デフォル ト: 30秒)以上かかった場合、IMAPSエージェントはメッセージを表示して終了します。 IMAPSクライアントアプリケーションをフォアグラウンドに切り替えた直後に終了操作を行った場合、foregroundとbackgroundのコール バック処理が実行されます。従って、IMAPSアプリ終了処理のタイムアウト時間には、foregroundとbackgroundのコールバック処理にか かる時間よりも大きな値を設定してください。 IMAPSアプリ終了処理のタイムアウト時間の設定方法については、「エージェント操作ガイド」の「付録B IMAPS初期設定のカスタマイ ズ方法」を参照してください。1.1.2 removeAppData
IMAPSクライアントアプリケーションに関連するすべてのデータを削除します。 なお、Storage APIで保存したデータは、IMAPSクライアントアプリケーション間で共有されるため削除されません。呼出し形式
imaps.app.removeAppData(onSuccess, onFailure)引数
引数 説明 onSuccess すべての削除が成功した場合に呼び出すコールバック関数を指定します。 onFailure 削除が失敗した場合に呼び出すコールバック関数を指定します。戻り値
なし1.1.3 abortApp
IMAPSクライアントアプリケーションを強制終了します。呼出し形式
imaps.app.abortApp()引数
なし戻り値
なし1.1.4
使用例
addEventListenerの使用例を以下に示します。 <!DOCTYPE HTML> <html lang="ja"> <head><script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { imaps.app.addEventListener("background", onBackground); imaps.app.addEventListener("foreground", onForeground); } function onBackground() { console.log("background event"); } function onForeground() { console.log("foreground event"); } </script> </head> <body> </body> </html> removeAppDataの使用例を以下に示します。 <!DOCTYPE HTML> <html lang="ja"> <head>
<script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() {} function removeAppData() { imaps.app.removeAppData(onSuccess, onFailure); }; function onSuccess() { alert("removeAppData success"); } function onFailure() {
alert("removeAppData fail"); } </script> </head> <body> <button onclick="removeAppData()">removeAppData</button> </body> </html> abortAppの使用例を以下に示します。 <!DOCTYPE HTML> <html lang="ja"> <head>
<script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() {} function abortApp() { imaps.app.abortApp(); }; </script> </head> <body> <button onclick="abortApp()">abortApp</button> </body> </html>
1.2
認証
1.2.1 getUserID
ログイン中のユーザーIDを取得します。呼出し形式
imaps.auth.getUserID(onSuccess, onFailure)引数
引数 説明 onSuccess ユーザーID取得が成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型でユーザーIDが返却されます。 onFailure ユーザーID取得が失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。戻り値
なし1.2.2 isOnlineFlag
オンライン認証、またはオフライン認証のどちらでログインしているかを取得します。呼出し形式
imaps.auth.isOnlineFlag(onSuccess, onFailure)引数
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型で認証方法が返却されます。返却される値の意味は以下の通りです。 ・true :オンライン認証 ・false:オフライン認証 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。戻り値
なし1.2.3
使用例
getUserIDの使用例を以下に示します。 <html> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script> function onBodyLoad() { document.addEventListener("deviceready", getUserID); } function getUserID() { imaps.auth.getUserID(resultHandler, errorHandler); }
function resultHandler (result) { alert("result: \r\n"+result ); }
function errorHandler (error) { alert("Error: \r\n"+error ); } </script> </head> <body onLoad="onBodyLoad();"> </body> </html> isOnlineFlagの使用例を以下に示します。 <html> <head>
<script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script> function onBodyLoad() { document.addEventListener("deviceready", isOnlineFlag); } function isOnlineFlag() { imaps.auth.isOnlineFlag(resultHandler, errorHandler); }
function resultHandler (result) { alert("result: \r\n"+result ); }
function errorHandler (error) { alert("Error: \r\n"+error ); } </script> </head> <body onLoad="onBodyLoad();"> </body> </html>
1.3
データ暗号化
API(SecureLocalStorage)
1.3.1 length
保存されているデータの数を返します。呼出し形式
imaps.sls.length(onSuccess, onFailure)引数
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型でデータの数が返却されます。 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。戻り値
なし1.3.2 key
保存されているindex番目のkeyを返します。注意
key追加、削除後の順序は保障されません。呼出し形式
imaps.sls.key(onSuccess, onFailure, index)
引数
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型でindex番目のkeyが返却されます。・
indexがnullまたは不正な値の場合は0番目のkeyを返却します。・
index番目にkeyが存在しない場合はnullを返却します。 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。 index 取得すべきkeyのindex値戻り値
なし1.3.3 setItem
keyとvalueのペアでデータを保存します。・
key/valueには空文字を使用することができます。・
nullは文字列"null"として扱います。・
すでに同じkeyが保存されている場合はvalueが更新されます。呼出し形式
imaps.sls.setItem(onSuccess, onFailure, key, value)
引数
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型で"OK"が返却されます。 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。 key 保存するkey value 保存するvalue戻り値
なし1.3.4 getItem
keyに対するvalueを取得します。呼出し形式
imaps.sls.getItem(onSuccess, onFailure, key)
引数
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型でkeyに対するvalueが返却されます。 該当するvalueが存在しない場合はnullが返却されます。 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。 key 取得するvalueのkey戻り値
なし1.3.5 removeItem
keyに対するvalueを削除します。呼出し形式
imaps.sls.removeItem(onSuccess, onFailure, key)
引数
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型で"OK"が返却されます。 該当するvalueが存在しない場合も"OK"が返却されます。 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。 key 削除するvalueのkey戻り値
なし1.3.6 clear
データをすべてクリアします。呼出し形式
imaps.sls.clear(onSuccess, onFailure)引数
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 第1引数にString型で"OK"が返却されます。 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にString型で例外メッセージが返却されます。戻り値
なし1.3.7
使用例
使用例として、ボタンを押下するとAPIの実行結果をアラート表示するHTMLサンプルを示します。 <html> <head><script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() {} // length() function length() { imaps.sls.length(resultHandler, errorHandler); } // key(index) function key(index) {
imaps.sls.key(resultHandler, errorHandler, index); }
// setItem(key, value) function setItem(key, value) {
imaps.sls.setItem(resultHandler, errorHandler, key, value); }
// getItem(key) function getItem(key) {
imaps.sls.getItem(resultHandler, errorHandler, key); }
// removeItem(key) function removeItem(key) {
imaps.sls.removeItem(resultHandler, errorHandler, key); } // clearItem() function clearItem() { imaps.sls.clear(resultHandler, errorHandler); } //正常時のCallBack function resultHandler(result) {
// length(), key(index), getItem(key)含め、結果はresultに設定される. alert("SUCCESS: \r\n"+result); } //異常時のCallBack. function errorHandler(error) { alert("ERROR: \r\n"+error); } </script> </head> <body>
<button onclick="length();">Click to length</button><br> <button onclick="key(0);">Click to key</button><br>
<button onclick="setItem('key', 'value');">Click to setItem</button><br> <button onclick="getItem('key');">Click to getItem</button><br>
<button onclick="removeItem('key');">Click to removeItem</button><br> <button onclick="clearItem();">Click to clear</button><br>
</body> </html>
1.4
通信
1.4.1 enableAsyncComm
URLがInterstage SSOの保護パスとして登録されているサーバアプリケーションとのAjax通信を有効化します。呼び出し形式
imaps.comm.enableAsyncComm(url)引数
引数 説明 url サーバアプリケーションが同梱しているimaps-async-comm-1.0.0.htmlのURLを指定します。戻り値
なし1.4.2 processServerResponse
URLがInterstage SSOの保護パスとして登録されているサーバアプリケーションとAjax通信した結果を処理します。呼び出し形式
imaps.comm.processServerResponse(onProceed,responseText)引数
引数 説明 onProceed 有効なレスポンスデータが戻ってきた場合に処理を継続するためのコールバック関数を指定します。 第1引数にString型でレスポンスデータが返却されます。 responseText Ajax通信のレスポンスデータを指定します。戻り値
なし1.4.3
使用例
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script type="text/javascript"> imaps.comm.enableAsyncComm("https://192.0.2.0/webapp/imaps-async-comm-1.0.0.html"); </script> </head> <body> <script type="text/javascript"> // Ajax通信するデータを設定してサーバと通信する関数です function dataUp(){
var xmlHttpRequest = new XMLHttpRequest(); xmlHttpRequest.open( 'POST', serverName);
xmlHttpRequest.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); var params = [];
var updatawork = encodeURIComponent( updata0 ).replace( /%20/g, '+' ); var upsyomeiwork = encodeURIComponent( upsyomei0 ).replace( /%20/g, '+' ); params.push( 'data=' + updatawork );
params.push( 'syomei=' + upsyomeiwork ); var paramsdata = params.join( '&' ); xmlHttpRequest.send(paramsdata);
xmlHttpRequest.onreadystatechange = function(){ var READYSTATE_COMPLETED = 4;
var HTTP_STATUS_OK = 200;
if( this.readyState == READYSTATE_COMPLETED && this.status == HTTP_STATUS_OK ) { // レスポンスデータを処理します imaps.comm.processServerResponse(onProceed,this.responseText); } } } // 実際にレスポンスデータを処理する関数です function onProceed(responseText) { alert("responseText:"+responseText); } </script> </body> </html>
1.5 AR
アプリケーション連携
1.5.1 start
ARアプリケーションのActivityを起動します。呼出し形式
imaps.ar.start(onSuccess, onFailure, packageName, activityClass, url)
引数 説明 onSuccess 成功した場合に呼び出すコールバック関数を指定します。 onFailure 失敗した場合に呼び出すコールバック関数を指定します。 第1引数にエラー情報を保持したエラーオブジェクトが返却されます。「エラーオブジェクト.code」でエラーコー ドを参照できます。「エラーオブジェクト.message」でエラーメッセージを参照できます。詳細は「エラー時に返 却される情報」を参照してください。 packageName ARアプリケーションのパッケージ名を指定します。 activityClass 起動するActivityを指定します。
・
AR重畳表示アプリケーションActivityの場合: "com.fujitsu.interstage.ar.mobileclient.android.base.web.ArWebMainActivity" または AR_WEB_MAIN・
クライアントオーサリングActivityの場合: "com.fujitsu.interstage.ar.mobileclient.android.authoring.ui.LiveAuthoringActivity" ま た は AR_LIVE_AUTH・
設定画面Activityの場合: "com.fujitsu.interstage.ar.mobileclient.android.base.pref.ArPreferenceActivity" ま た は AR_PREFERENCE url AR重畳表示アプリケーションActivityを起動する場合、起動するURL文字列を指定します。その他のActivity の場合は無視されます。エラー時に返却される情報
以下にエラーコードとメッセージの意味および対処を説明します。 コード メッセージ 意味 対処 100 以下のどれかが返却されます。・
INVALID_PACKAGE_NAM E・
INVALID_INTENT_OPTIO N・
INVALID_ACTIVITY_CLA SS・
INVALID_WEBMAIN_URL 以下の意味です。・
不当なパッケージ名です。・
不当なインテントオプションです。・
不当なActivityです。・
不当なURLです。 正しい値を指定してください。 101 PACKAGE_NOT_EXIST [%1] パッケージ名が指定されましたが、Androidデバ イス上にそのようなパッケージはインストールさ れていません。 %1: パッケージ名 パッケージがデバイス上に存在する か確認してください。 102 ENV_NOT_INITIALIZED Cordova環境が適切に初期化されていません。 技術員に連絡してください。 105 ACTIVITY_NOT_FOUND [%1] 実行するActivityがありません。 %1: Activity 正しいActivityを指定してください。 106 ENV_ERROR [%1] CordovaまたはAndroid上で内部的な例外が発 生しました。 %1: 例外メッセージ 技術員に連絡してください。戻り値
1.5.2
使用例
startの使用例を以下に示します。
<!DOCTYPE HTML> <html lang="ja"> <head>
<script type="text/javascript" src="cordova-2.9.0.js"></script> <script type="text/javascript" src="imaps-1.0.0.js"></script> <script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() {}
function launch_ar(activity) {
imaps.ar.start(onSuccess, onFailure, "com.sample.clientdev", activity, "http://192.0.2.0:9102/webapp/index.html");
}
function onSuccess() {
console.log("AR appli start success"); }
function onFailure() {
console.log("AR appli start failure"); } </script> </head> <body> <button onclick="launch_ar(AR_WEB_MAIN)">ArWebMainActivity</button><br/> <button onclick="launch_ar(AR_LIVE_AUTH)">LiveAuthoringActivity</button><br/> <button onclick="launch_ar(AR_PREFERENCE)">ArPreferenceActivity</button><br/> </body> </html>
1.6 Cordova API
Cordova APIについては、マニュアルDVDの「Apache Cordova Documentation API Reference」を参照してください。