Apl.onloadComment = function(){ //Webストレージに保存した全てのデータを取得します Apl.getLocalStorageData(); //動作モードに応じてhtml表示を変更します。 Apl.showOperationMode(); //ネイティブカメラを停止します。 AR.Camera.stopCameraView(Apl.noop, Apl.stopCameraViewError); };
入力がない場合はalertを表示、入力されていた場合はAR実行サーバへPOSTするオブジェクトを生成しWebストレージに保存します。
Apl.onClickOK = function(){ //入力データを取得します。 var data = Apl.getCommentData(); if(data){ Apl.userData = data; //AR実行サーバに登録するクエリデータを作成します。 Apl.postData = new Object(); Apl.postData.query = "quads"; Apl.postData.body = Apl.createCommentDataQuad(data); //Webストレージに保存します。 localStorage.setItem("userData", JSON.stringify(Apl.userData)); localStorage.setItem("postData", JSON.stringify(Apl.postData)); if(Apl.operationMode == "serverMode"){ // サーバ通信モードの場合 Apl.upload(); } else { // スタンドアローンモードの場合 alert("データを保存しました。サーバ通信モードでアップロードしてください。"); if(location.href != "work.html") location.href = "work.html"; } } };
Apl.getCommentData = function(){ var fName = document.comment_form.f_name.value; //名前が入力されていない場合はalert表示 if(fName == null || fName == ""){ alert("名前が入力されていません。入力してください。"); return; }//名前が長い場合はalert表示 if(fName.length>30){ alert("名前が長すぎます。30文字以下にしてください。"); return; } var fTemperature = document.comment_form.f_comment.value; //温度が入力されていない場合はalert表示 if(fTemperature == null || fTemperature == ""){ alert("温度が入力されていません。入力してください。"); return; } //温度が長い場合はalert表示 0~999 if(fTemperature.length > 3){ alert("温度は0~999の範囲で入力してください。"); return; } //ユーザデータオブジェクト作成 var data = new Object(); data.name = fName; data.temperature = parseInt(fTemperature); data.time = new Date().getTime(); return data; };
Apl.createCommentDataQuad = function(_data){ // QUADを作成します。 var quad = new Apl.Quad(); // QUADのタイプネームを設定します。 quad.qtypeName = "usr_sample"; // QUADの値を作成します。 // QValue ar_idを作成します。 var arId = new Apl.QValue(); arId.qtypeName = "usr_sample"; arId.qattributeName = "ar_id"; arId.stringValue = null; arId.longValue = 1; arId.floatValue = null; // QValue ar_nameを作成します。 var arName = new Apl.QValue(); arName.qtypeName = "usr_sample"; arName.qattributeName = "ar_name"; arName.stringValue = "点検結果"; arName.longValue = null; arName.floatValue = null; // QValue ar_descriptionを作成します。 var arDescription = new Apl.QValue(); arDescription.qtypeName = "usr_sample"; arDescription.qattributeName = "ar_description"; arDescription.stringValue = "AR業務サンプルアプリケーションの点検結果です。"; arDescription.longValue = null; arDescription.floatValue = null; // QValue ar_registrationtimeを作成します。 var arRegistrationtime = new Apl.QValue(); arRegistrationtime.qtypeName = "usr_sample"; arRegistrationtime.qattributeName = "ar_registrationtime"; arRegistrationtime.stringValue = null; arRegistrationtime.longValue = _data.time; arRegistrationtime.floatValue = null // QValue ar_modificationtimeを作成します。 var arModificationtime = new Apl.QValue(); arModificationtime.qtypeName = "usr_sample"; arModificationtime.qattributeName = "ar_modificationtime"; arModificationtime.stringValue = null; arModificationtime.longValue = _data.time; arModificationtime.floatValue = null; // QValue usr_nameを作成します。 var usrName = new Apl.QValue(); usrName.qtypeName = "usr_sample"; usrName.qattributeName = "usr_name"; usrName.stringValue = _data.name; usrName.longValue = null; usrName.floatValue = null; // QValue usr_temperatureを作成します。 var usrTemperature = new Apl.QValue(); usrTemperature.qtypeName = "usr_sample"; usrTemperature.qattributeName = "usr_temperature"; usrTemperature.stringValue = null; usrTemperature.longValue = _data.temperature; usrTemperature.floatValue = null; // QValueをQUADに設定します。 quad.qvalues = [arId, arName, arDescription, arRegistrationtime, arModificationtime, usrName, usrTemperature] //文字列に変換します。 var rtndata = JSON.stringify(quad); return rtndata; };