Este arquivo HTML contém o exemplo das chamadas e callBacks das funções para acesso aos perifericos dos dispositivo (camera, gps, etc) e também para acesso ao banco da dados SQLite.
Arquivo
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <style> body { font-family: 'Calibri'; } a { text-decoration: none; } div { display: inline-block; float: left; background-color: #019AC4; color: #FFFFFF; width: 250px; height: 34px; margin: 10px; padding: 10px; } </style> <script src="totvstec.js"></script> <script> onload = function () { loadEngine(); } function loadEngine() { // Conecta WebSocket Server totvstec.connectWS( function(){ // Carrega mensageria exclusiva da pagina dialog.advplToJs.connect(function (codeType, codeContent, objectName) { //if (codeType == "") { //} }); // Envia sinal informando termino da carga dialog.jsToAdvpl("page_started", "Pagina inicializada"); }); } // Funcoes de CallBack Advpl -> JS function getPictureSuccess(image) { totvstec.createNotification( 1, "getPicture", image ); totvstec.runAdvpl('Encode64(,"' + image + '",.T.,.T.)', imgEncodedSuccess); } function barCodeScannerSuccess(barCode) { totvstec.createNotification( 1, "barCodeScanner", barCode ); } function pairedDevicesSuccess(paired) { alert(paired); } function getCurrentPositionSuccess(position) { window.location.href = "http://maps.google.com/?q=" + position; } function readAccelerometerSuccess(sensorRead) { alert(sensorRead); } function addCalendarSuccess(id) { alert("CalendarId:" + id); } var savedid = "0"; function findCalendarSuccess(retIds) { alert("Ids encontrados " + retIds); obj = JSON.parse(retIds); savedid = obj.ids[0]; } function getCalendarSuccess(calev) { obj = JSON.parse(calev); alert("titulo - " + obj.title + "\n" + "descricao - " + obj.descr + "\n" + "local - " + obj.addr + "\n" + "data ini - " + obj.startdate + "\n" + "hora ini - " + obj.starttime + "\n" + "data fim - " + obj.enddate + "\n" + "hora fim - " + obj.endtime + "\n" + "dia todo - " + obj.allday); } function getDate(){ var today = new Date(); var dd = today.getDate(); var mm = today.getMonth()+1; //January is 0! var yyyy = today.getFullYear(); return mm+'/'+dd+'/'+yyyy; } function runAdvplSuccess(retStr){ alert(retStr); } function imgEncodedSuccess(retStr){ //Envia a imagem encoded em base64 via REST/JSON/XML //Para exemplificar, quem receber isto deve fazer parecido com abaixo alert("entrando no call back"); totvstec.decode64(retStr,"imagem.jpg",true, imgSavedSuccess); } function imgSavedSuccess(ret){ alert("Imagem " + ret + " salva com sucesso!"); } function testDeviceSuccess(lRet){ alert(lRet); } function getTempPathSuccess(tempPath){ alert(tempPath); } function findContactSuccess(contact) { alert(contact); } function dbGetSuccess(data){ var jsonStr = JSON.stringify(data); alert('dbGetSuccess: ' + jsonStr.replace(/"/g, "'")); } function dbError(error){ alert("dbError: " + error); } function dbSuccess(){ // Dummy } function getFindContactFilter(){ var filter = prompt("Entre com a palavra-chave: ", "TOTVS"); if (filter != null) { return filter; } else { return ""; } } // Cria tabela function dbCreateTableSuccess(){ totvstec.dbExec( "insert into newTab values (1,'User 1')", dbSuccess, dbError ); totvstec.dbExec( "insert into newTab values (2,'User 2')", dbSuccess, dbError ); totvstec.dbExec( "insert into newTab values (3,'User 3')", dbSuccess, dbError ); alert("dbCreateTableSuccess: Tabela criada com sucesso"); } function dbCreateTable(){ totvstec.dbExec("create table newTab (cod INTEGER, name TEXT)", dbCreateTableSuccess, dbError); } // Deleta tabela function dbDropTableSuccess(){ alert("dbDropTable: Ok"); } function dbDropTable(){ totvstec.dbExec("drop table newTab", dbDropTableSuccess, dbError); } function testCommitProcess(){ totvstec.dbBegin(dbSuccess, dbError); totvstec.dbExec( "insert into newTab values (4,'User 4')", dbSuccess, dbError ); totvstec.dbExec( "insert into newTab values (5,'User 5')", dbSuccess, dbError ); totvstec.dbExec( "insert into newTab values (6,'User 6')", dbSuccess, dbError ); totvstec.dbCommit(dbSuccess, dbError); alert("testCommitProcess: Ok"); } function testRollbackProcess(){ totvstec.dbBegin(dbSuccess, dbError); totvstec.dbExec( "insert into newTab values (4,'User 4')", dbSuccess, dbError ); totvstec.dbExec( "insert into newTab values (5,'User 5')", dbSuccess, dbError ); totvstec.dbExec( "insert into newTab values (6,'User 6')", dbSuccess, dbError ); totvstec.dbRollback(dbSuccess, dbError); alert("testRollbackProcess: Ok"); } </script> </head> <body> <font face=calibri color="#FFFFFF"> <p><img src="logo_totvs.png" align="left"> <br> <font size=14 face=calibri color="#039CBB"> Cloud Bridge - Custom</font> </p><br> <div style="background-color: #DB4437; width: 90%; height: 12px;"> <font size="4">Acesso ao SQLite </font><br><br> </div> <a onclick='dbCreateTable();'> <div> <font size="5">Cria Tabela</font><br><br> </div> </a> <a onclick='dbDropTable();'> <div> <font size="5">Apaga Tabela</font><br><br> </div> </a> <a onclick='totvstec.dbGet("select * from newTab", dbGetSuccess, dbError);'> <div> <font size="5">Recupera dados</font><br><br> </div> </a> <a onclick='totvstec.dbGet("SELECT name FROM sqlite_master WHERE type=\"table\"", dbGetSuccess, dbError);'> <div> <font size="5">Lista Tabelas</font><br><br> </div> </a> <a onclick='testRollbackProcess();'> <div> <font size="5">Proc.c/ Rollback</font><br><br> </div> </a> <a onclick='testCommitProcess();'> <div> <font size="5">Proc. c/ Commit</font><br><br> </div> </a> <div style="background-color: #DB4437; width: 90%; height: 12px;"> <font size="4">Acesso ao periferico</font><br><br> </div> <a onclick='totvstec.runAdvpl("DtoS(CtoD(\"" +getDate()+ "\"))", runAdvplSuccess);'> <div> <font size="5">runAdvpl</font><br><br> </div> </a> <a onclick='totvstec.getPicture(0,getPictureSuccess);'> <div> <font size="5">Captura imagem</font><br><br> </div> </a> <a onclick='totvstec.getPicture(200,getPictureSuccess);'> <div> <font size="5">Captura imagem (Redimensionando)</font><br><br> </div> </a> <a onclick='totvstec.barCodeScanner(barCodeScannerSuccess);'> <div> <font size="5">Código de barras</font><br><br> </div> </a> <a onclick='totvstec.pairedDevices(pairedDevicesSuccess);'> <div> <font size="5">Pareados</font><br><br> </div> </a> <a onclick='totvstec.getCurrentPosition(getCurrentPositionSuccess);'> <div> <font size="5">Geo Posição</font><br><br> </div> </a> <a onclick='totvstec.unlockOrientation();'> <div> <font size="5">Libera Orientação</font><br><br> </div> </a> <a onclick='totvstec.lockOrientation();'> <div> <font size="5">Trava Orientação</font><br><br> </div> </a> <a onclick='totvstec.createNotification( 1, "Titulo da Notificação", "Corpo da Notificação" );'> <div> <font size="5">Notificação</font><br><br> </div> </a> <a onclick='totvstec.vibrate(400);'> <div> <font size="5">Vibrar</font><br><br> </div> </a> <a onclick='totvstec.getTempPath(getTempPathSuccess);'> <div> <font size="5">GetTempPath</font><br><br> </div> </a> <a onclick='totvstec.readAccelerometer(readAccelerometerSuccess);'> <div> <font size="5">Acelerômetro</font><br><br> </div> </a> <a onclick='totvstec.enblOnPause();'> <div> <font size="5">Ativar OnPause</font><br><br> </div> </a> <a onclick='totvstec.enblOnResume();'> <div> <font size="5">Ativar OnResume</font><br><br> </div> </a> <a onclick='totvstec.addContact("CST TOTVS", "Centro de Serviços TOTVS", "TOTVS SA", "[email protected]", 2, "+55 11 4003-0015", 2, "Av. Braz Leme, 1631 - Jd. São Bento - São Paulo/SP", "Canal exclusivo para assuntos administrativos e financeiros. Atendimento: de segunda à sexta, das 8h00 às 12h00 e das 13h30 às 18h00.");'> <div> <font size="5">AddContact</font><br><br> </div> </a> <a onclick='totvstec.findContact(getFindContactFilter() , findContactSuccess);'> <div> <font size="5">FindContact</font><br><br> </div> </a> <a onclick='totvstec.addCalendar("TOTVS", "Descrição TOTVS", "Endereço TOTVS", new Date().toJSON().slice(0,10),"08:00:00", new Date().toJSON().slice(0,10), "09:00:00", "False", addCalendarSuccess);'> <div> <font size="5">AddCalendar</font><br><br> </div> </a> <a onclick='totvstec.findCalendar(new Date().toJSON().slice(0,10),new Date( (new Date()).valueOf() + 1000*3600*24 ).toJSON().slice(0,10), findCalendarSuccess);'> <div> <font size="5">FindCalendar</font><br><br> </div> </a> <a onclick='totvstec.viewCalendar(savedid);'> <div> <font size="5">ViewCalendar</font><br><br> </div> </a> <a onclick='totvstec.getCalendar(savedid,getCalendarSuccess);'> <div> <font size="5">GetCalendar</font><br><br> </div> </a> <a onclick='alert(totvstec.version);'> <div> <font size="5">Versão JS</font><br><br> </div> </a> <div style="background-color: #DB4437; width: 90%; height: 12px;"> <font size="4">Testa os perifericos</font><br><br> </div> <a onclick='totvstec.testDevice(totvstec.BLUETOOTH_FEATURE, testDeviceSuccess)'> <div> <font size="5">Testa BlueTooth</font><br><br> </div> </a> <a onclick='totvstec.testDevice(totvstec.NFC_FEATURE, testDeviceSuccess)'> <div> <font size="5">Testa NFC</font><br><br> </div> </a> <a onclick='totvstec.testDevice(totvstec.WIFI_FEATURE, testDeviceSuccess)'> <div> <font size="5">Testa WIFI</font><br><br> </div> </a> <a onclick='totvstec.testDevice(totvstec.LOCATION_FEATURE, testDeviceSuccess)'> <div> <font size="5">Testa GPS</font><br><br> </div> </a> <a onclick='totvstec.testDevice(totvstec.CONNECTED_WIFI, testDeviceSuccess)'> <div> <font size="5">Conectado WIFI</font><br><br> </div> </a> <a onclick='totvstec.testDevice(totvstec.CONNECTED_MOBILE, testDeviceSuccess)'> <div> <font size="5">Conectado 3G</font><br><br> </div> </a> <div style="background-color: #DB4437; width: 90%; height: 12px;"> <font size="4">Abre as configurações</font><br><br> </div> <a onclick='totvstec.openSettings(totvstec.BLUETOOTH_FEATURE)'> <div> <font size="5">Abre BlueTooth</font><br><br> </div> </a> <a onclick='totvstec.openSettings(totvstec.NFC_FEATURE)'> <div> <font size="5">Abre NFC</font><br><br> </div> </a> <a onclick='totvstec.openSettings(totvstec.WIFI_FEATURE)'> <div> <font size="5">Abre WIFI</font><br><br> </div> </a> <a onclick='totvstec.openSettings(totvstec.LOCATION_FEATURE)'> <div> <font size="5">Abre GPS</font><br><br> </div> </a> </body> </html>
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas