Child pages
  • mobile

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hidden}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY, UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACT CHANGES FROM THE PAGE AND MERGE THEM BACK INTO SERVOY SOURCE{hidden}
{sub-section:description|text=}{sub-section}\\ 

{table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{span:class=sWordList}[JSInsetList]{span}{span:class=sWordList}[JSList]{span}{span:class=sWordList}[SolutionHelper]{span}{tdtd}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property Summary{th}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}PropertyMethod Summary{th}{tr}{tbody}{tr}{td}[SolutionHelper]void{td}{td}[#solutionHelper#call]\(telNumber)
Mobile helper is used as Initiate a complementary tool to solution model.phone call{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}void{td}{td}[#call]\(telNumber)
Initiate a phone call{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}tbody}{tr}{td}void{td}{td}[#clearLocalData]\()
Clears local data \- that is stored in browser local storage.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#email]\(emailAddress)
Initiate an email sending{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#getCurrentPosition]\(successCallback, errorHandler, options)
Wrapper function around HTML5 getCurrentPosition.{td}{tr}{tbody}{tbody}{tr}{td}[NumberString]{td}{td}[#getUsedStorageSpace#getMarkupId]\(element)
Retrieves markup amountid of used bytes an element{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getUsedStorageSpace]\()
Retrieves amount of used bytes from browser local storage.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isOnline]\()
Returns whether mobile device is online.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#syncData#loadData]\()
(Re)Loads Synchronizesfresh data between Mobile Client and Servoy Application Server from the server, discarding the current local changes (asynchronously).{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=solutionHelper|class=node}{tr:id=name}{td}h6.solutionHelper{td}{tr}{tr:id=des}{td}{sub-section:solutionHelper_des|trigger=button|text=}{sub-section}{sub-section:solutionHelper_des|trigger=none|class=sIndent}Mobile helper is used as a complementary tool to solution model.
Components/solution structure in mobile client needs special tags which are not supported by solution model API,
but this mobile helper can be used to apply them. For example a button can be the right header button or the left header button and so on.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:solutionHelper_snc|trigger=button|text=}{sub-section}{sub-section:solutionHelper_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:solutionHelper_prs|trigger=button|text=}{sub-section}{sub-section:solutionHelper_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:solutionHelper_ret|trigger=button|text=}{sub-section}{sub-section:solutionHelper_ret|trigger=none|class=sIndent}[SolutionHelper]{sub-sectiontbody}{tr}{td}void{td}{td}[#loadData]\(successCallback, errorHandler)
(Re)Loads fresh data from the server, discarding the current local changes (asynchronously).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#syncData]\()
Synchronises data between Mobile Client and Servoy Application Server (asynchronously).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#syncData]\(successCallback, errorHandler)
Synchronises data between Mobile Client and Servoy Application Server (asynchronously), calling 
"successCallback" on successful synchronisation, with first argument the size of the received data in bytes,
or "errorHandler" if an error occurs during synchronisation, with first argument the HTTP status code for the request or \-1 if unknown, and the second argument
the error message.{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=call|class=node}{tr:id=name}{td}h6.call{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}call{span}{span:id=iets|style=float: left;}\(telNumber){span}{td}{tr}{builder-show:permission=edit}{tr:id=seedes}{td}*Also see*\\{sub{sub-section:solutionHelpercall_seedes|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:solutionHelpercall_seedes|trigger=none|class=sIndent}Replace with description{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksnc}{td}*External linksSince*\\{sub-section:solutionHelpercall_linksnc|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:solutionHelpercall_linksnc|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{tr:id=samprs}{td}*SampleParameters*\\{sub-section:solutionHelpercall_samprs|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:solutionHelpercall_samprs|trigger=none|class=sIndent}{code:language=javascript\{[String]} vartelNumber f-- = solutionModel.newForm("created_by_sm_1","udm","contacts",null,false,100,380);

var backMethod;
var b = f.newButton("back",0,0,10,10,backMethod = f.newMethod("function goBack() { history.back(); }"));
plugins.mobile.solutionHelper.markLeftHeaderButton(b);
plugins.mobile.solutionHelper.setIconType(b,plugins.mobile.SolutionHelper.ICON_BACK);

b = f.newButton("doSomething",0,0,10,10,f.newMethod("function goForward() { globals.doSomething(); }"));
plugins.mobile.solutionHelper.markRightHeaderButton(b);
plugins.mobile.solutionHelper.setIconType(b,plugins.mobile.SolutionHelper.ICON_FORWARD);

var lbl = f.newLabel("Generated form",0,0,10,10);
plugins.mobile.solutionHelper.markHeaderText(lbl);

b = f.newButton("ok",0,0,10,10,backMethod);
plugins.mobile.solutionHelper.setIconType(b,plugins.mobile.SolutionHelper.ICON_CHECK);
plugins.mobile.solutionHelper.markFooterItem(b);
{codetelephone number to call
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:call_ret|trigger=button|text=}{sub-section}{sub-section:call_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:call_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:call_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:call_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:call_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:call_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:call_sam|trigger=none}{code:language=javascript}
plugins.mobile.call("+490111111")
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=clearLocalData|class=node}{tr:id=name}{td}h6.clearLocalData{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}clearLocalData{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:clearLocalData_des|trigger=button|text=}{sub-section}{sub-section:clearLocalData_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:clearLocalData_snc|trigger=button|text=}{sub-section}{sub-section:clearLocalData_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:clearLocalData_prs|trigger=button|text=}{sub-section}{sub-section:clearLocalData_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:clearLocalData_ret|trigger=button|text=}{sub-section}{sub-section:clearLocalData_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:clearLocalData_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:clearLocalData_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:clearLocalData_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:clearLocalData_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:clearLocalData_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:clearLocalData_sam|trigger=none}{code:language=javascript}
// if we want do clear local copy of the data because the user did something really bad with local data
plugins.mobile.clearLocalData();
plugins.mobile.syncData();

// maybe we are done with a task and we don't want to use persistent space on the device
plugins.mobile.clearLocalData();
forms.noDataInitialForm.showWithMessage("Local data discarded."); // a form that displays the message and shows itself on this call; it also allows doing a sync later for example
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=email|class=node}{tr:id=name}{td}h6.email{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}email{span}{span:id=iets|style=float: left;}\(emailAddress){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:email_des|trigger=button|text=}{sub-section}{sub-section:email_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:email_snc|trigger=button|text=}{sub-section}{sub-section:email_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:email_prs|trigger=button|text=}{sub-section}{sub-section:email_prs|trigger=none|class=sIndent}\{[String]} emailAddress -- destination email address
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:email_ret|trigger=button|text=}{sub-section}{sub-section:email_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:email_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:email_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:email_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:email_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:email_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:email_sam|trigger=none}{code:language=javascript}
plugins.mobile.email("[email protected]")
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getCurrentPosition|class=node}{tr:id=name}{td}h6.getCurrentPosition{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}getCurrentPosition{span}{span:id=iets|style=float: left;}\(successCallback, errorHandler, options){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getCurrentPosition_des|trigger=button|text=}{sub-section}{sub-section:getCurrentPosition_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getCurrentPosition_snc|trigger=button|text=}{sub-section}{sub-section:getCurrentPosition_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getCurrentPosition_prs|trigger=button|text=}{sub-section}{sub-section:getCurrentPosition_prs|trigger=none|class=sIndent}\{[Function]} successCallback -- Method to be called if the coordinates are retrieved.
\{[Function]} errorHandler -- Method to be called if an error occurs while retrieving GPS coordinates. Can be null.
\{[Object]} options -- JSON string with different options that are supported by HTML5 function (accuracy, timeout, caching).
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getCurrentPosition_ret|trigger=button|text=}{sub-section}{sub-section:getCurrentPosition_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getCurrentPosition_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentPosition_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getCurrentPosition_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentPosition_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getCurrentPosition_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentPosition_sam|trigger=none}{code:language=javascript}
plugins.mobile.getCurrentPosition(forms.myform.showLocation,scopes.globals.errorHandler,{timeout:5000});
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMarkupId|class=node}{tr:id=name}{td}h6.getMarkupId{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getMarkupId{span}{span:id=iets|style=float: left;}\(element){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getMarkupId_des|trigger=button|text=}{sub-section}{sub-section:getMarkupId_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMarkupId_snc|trigger=button|text=}{sub-section}{sub-section:getMarkupId_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getMarkupId_prs|trigger=button|text=}{sub-section}{sub-section:getMarkupId_prs|trigger=none|class=sIndent}\{[RuntimeComponent]} element -- to retrive markup id for
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getMarkupId_ret|trigger=button|text=}{sub-section}{sub-section:getMarkupId_ret|trigger=none|class=sIndent}[String] -- the element's markup id{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMarkupId_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMarkupId_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMarkupId_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMarkupId_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:classid=lastDetailRowsam}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}*Sample*\\{sub-section:getMarkupId_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMarkupId_sam|trigger=none}{code:language=javascript}
var id = plugins.mobile.getMarkupId(elements.myButton)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=callgetUsedStorageSpace|class=node}{tr:id=name}{td}h6.callgetUsedStorageSpace{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}callgetUsedStorageSpace{span}{span:id=iets|style=float: left;}\(telNumber){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:callgetUsedStorageSpace_des|trigger=button|text=}{sub-section}{sub-section:callgetUsedStorageSpace_des|trigger=none|class=sIndent}Initiate aReplace phonewith calldescription{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:callgetUsedStorageSpace_snc|trigger=button|text=}{sub-section}{sub-section:callgetUsedStorageSpace_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:callgetUsedStorageSpace_prs|trigger=button|text=}{sub-section}{sub-section:callgetUsedStorageSpace_prs|trigger=none|class=sIndent}\{[String]} telNumber -- telephone number to call
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:callgetUsedStorageSpace_ret|trigger=button|text=}{sub-section}{sub-section:callgetUsedStorageSpace_ret|trigger=none|class=sIndent}void[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:callgetUsedStorageSpace_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:callgetUsedStorageSpace_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:callgetUsedStorageSpace_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:callgetUsedStorageSpace_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:callgetUsedStorageSpace_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:callgetUsedStorageSpace_sam|trigger=none}{code:language=javascript}
var usedSpace = plugins.mobile.callgetUsedStorageSpace("+490111111")
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=emailisOnline|class=node}{tr:id=name}{td}h6.emailisOnline{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}emailisOnline{span}{span:id=iets|style=float: left;}\(emailAddress){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:emailisOnline_des|trigger=button|text=}{sub-section}{sub-section:emailisOnline_des|trigger=none|class=sIndent}InitiateReplace anwith email sendingdescription{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:emailisOnline_snc|trigger=button|text=}{sub-section}{sub-section:emailisOnline_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:emailisOnline_prs|trigger=button|text=}{sub-section}{sub-section:emailisOnline_prs|trigger=none|class=sIndent}\{[String]} emailAddress -- destination email address
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:emailisOnline_ret|trigger=button|text=}{sub-section}{sub-section:emailisOnline_ret|trigger=none|class=sIndent}void[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:emailisOnline_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:emailisOnline_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:emailisOnline_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:emailisOnline_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:emailisOnline_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:emailisOnline_sam|trigger=none}{code:language=javascript}
plugins.mobile.emailisOnline("[email protected]")
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getCurrentPositionloadData|class=node}{tr:id=name}{td}h6.getCurrentPositionloadData{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}getCurrentPositionloadData{span}{span:id=iets|style=float: left;}\(successCallback, errorHandler, options){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:loadData_des|trigger=button|text=}{sub-section}{sub-section:getCurrentPositionloadData_des|trigger=button|text=}{sub-section}=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getCurrentPositionloadData_dessnc|trigger=nonebutton|classtext=sIndent}Wrapper function around HTML5 getCurrentPosition. Method will call successCallback method with a Position object parameter if GPS position was retrieved. Otherwise will call errorHandler with an error parameter. This method has dummy implementation in developer. 
NOTE: For options you can specify (a) Accuracy of the returned location information (b) Timeout for retrieving the location information and (c) Use of cached location information}{sub-section}{sub-section:loadData_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncprs}{td}*SinceParameters*\\{sub-section:getCurrentPositionloadData_sncprs|trigger=button|text=}{sub-section}{sub-section:getCurrentPositionloadData_sncprs|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prsret}{td}*ParametersReturns*\\{sub-section:getCurrentPositionloadData_prsret|trigger=button|text=}{sub-section}{sub-section:getCurrentPositionloadData_prsret|trigger=none|class=sIndent}\{[Function]} successCallback -- Method to be called if the coordinates are retrieved.
\{[Function]} errorHandler -- Method to be called if an error occurs while retrieving GPS coordinates. Can be null.
\{[Object]} options -- JSON string with different options that are supported by HTML5 function (accuracy, timeout, caching).
}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:loadData_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:loadData_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=retlink}{td}*ReturnsExternal links*\\{sub-section:getCurrentPositionloadData_retlink|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentPositionloadData_retlink|trigger=none|class=sIndent}void{sub-section}{div}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:getCurrentPositionloadData_seesam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentPositionloadData_seesam|trigger=none}{code:language=javascript}
// reload data from server and discard local changes
plugins.mobile.loadData();
{code}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linktr:class=lastDetailRow}{td}{td}*External links*\\{sub-section:getCurrentPosition_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentPosition_link|trigger=none}{sub-section}{div}{tr}{tbody}{tbody:id=loadData-Function_Function|class=node}{tr:id=name}{td}h6.loadData{td}{tr}{builder-show}{tr:id=samsig}{td}*Sample*\\{sub-section:getCurrentPosition_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentPosition_sam|trigger=none}{code:language=javascript}
plugins.mobile.getCurrentPosition(forms.myform.showLocation,scopes.globals.errorHandler,{timeout:5000});
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUsedStorageSpace|class=node}{tr:id=name}{td}h6.getUsedStorageSpace{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getUsedStorageSpace{span}{span:id=iets|style=float: left;}\(){span}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}loadData{span}{span:id=iets|style=float: left;}\(successCallback, errorHandler){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:loadData-Function_Function_des|trigger=button|text=}{sub-section}{sub-section:loadData-Function_Function_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:loadData-Function_Function_snc|trigger=button|text=}{sub-section}{sub-section:loadData-Function_Function_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=desprs}{td}*Parameters*\\{sub-section:getUsedStorageSpace_desloadData-Function_Function_prs|trigger=button|text=}{sub-section}{sub-section:getUsedStorageSpace_desloadData-Function_Function_prs|trigger=none|class=sIndent}Retrieves amount of used bytes from browser local storage. The storage amount depends on used browser, but, from specification, the browser should allow at least 5MB of local storage. Note: Some browsers take two bytes per character.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getUsedStorageSpace_snc|trigger=button|text=}{sub-section}{sub-section:getUsedStorageSpace_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters}\{[Function]} successCallback -- Method to be called if the load was successful. Can be null.
First argument of the success callback is the size of received data in bytes.
\{[Function]} errorHandler -- Method to be called if an error occurs during load. Can be null.
First argument is the HTTP status code for the request or \-1 if unknown.
Second argument is the error message.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getUsedStorageSpace_prsloadData-Function_Function_ret|trigger=button|text=}{sub-section}{sub-section:getUsedStorageSpace_prsloadData-Function_Function_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=retsee}{td}*ReturnsAlso see*\\{sub-section:getUsedStorageSpace_retloadData-Function_Function_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUsedStorageSpace_retloadData-Function_Function_see|trigger=none|class=sIndent}[Number]{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=seelink}{td}*AlsoExternal seelinks*\\{sub-section:getUsedStorageSpace_seeloadData-Function_Function_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUsedStorageSpace_seeloadData-Function_Function_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:getUsedStorageSpace_linkloadData-Function_Function_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUsedStorageSpace_linkloadData-Function_Function_sam|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getUsedStorageSpace_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUsedStorageSpace_sam|trigger=none}{code:language=javascript}
var usedSpace = plugins.mobile.getUsedStorageSpace()
code:language=javascript}
function reloadAndDiscardData(event)
{
	plugins.mobile.loadData(onLoadSuccess, onLoadError);
}
 
function onLoadSuccess(dataBytes)
{
	if (dataBytes > 0) forms.contacts.showContacts(accountmanager_to_companies.companies_to_contacts);
	else forms.noData.showWithMessage("Server has no data to send.");
}
 
function onLoadError(http_status_code, error_message)
{
	plugins.dialogs.showWarningDialog("Warning", 'Reload of data failed with http status code: ' + http_status_code + ', and error message: ' + error_message);
	forms.firstForm.showWithMessage("Data reload failed. Please press 'Synchronise' to try again.");
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isOnlinesyncData|class=node}{tr:id=name}{td}h6.isOnlinesyncData{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]void{span}{span:id=iets|style=float: left; font-weight: bold;}isOnlinesyncData{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:isOnlinesyncData_des|trigger=button|text=}{sub-section}{sub-section:isOnlinesyncData_des|trigger=none|class=sIndent}ReturnsReplace whether mobile device is online. Returns true in developer implementation.with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:isOnlinesyncData_snc|trigger=button|text=}{sub-section}{sub-section:isOnlinesyncData_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:isOnlinesyncData_prs|trigger=button|text=}{sub-section}{sub-section:isOnlinesyncData_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:isOnlinesyncData_ret|trigger=button|text=}{sub-section}{sub-section:isOnlinesyncData_ret|trigger=none|class=sIndent}[Boolean]void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:isOnlinesyncData_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:isOnlinesyncData_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:isOnlinesyncData_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:isOnlinesyncData_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:isOnlinesyncData_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:isOnlinesyncData_sam|trigger=none}{code:language=javascript}
plugins.mobile.isOnlinesyncData()
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=syncData-Function_Function|class=node}{tr:id=name}{td}h6.syncData{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}syncData{span}{span:id=iets|style=float: left;}\(successCallback, errorHandler){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:syncData-Function_Function_des|trigger=button|text=}{sub-section}{sub-section:syncData-Function_Function_des|trigger=none|class=sIndent}SynchronizesReplace data between Mobile Client and Servoy Application Server.with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:syncData:syncData-Function_Function_snc|trigger=button|text=}{sub-section}{sub-section:syncData-Function_Function_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:syncData-Function_Function_prs|trigger=button|text=}{sub-section}{sub-section:syncData-Function_Function_prs|trigger=button|text=}{sub-section}{sub-section:syncData_prs|trigger=none|class=sIndent}|trigger=none|class=sIndent}\{[Function]} successCallback -- Method to be called if the sync was successful. Can be null.
\{[Function]} errorHandler -- Method to be called if an error occurs during synchronisation. Can be null.
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:syncData-Function_Function_ret|trigger=button|text=}{sub-section}{sub-section:syncData-Function_Function_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:syncData-Function_Function_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:syncData-Function_Function_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:syncDatasyncData-Function_Function_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:syncData-Function_Function_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:syncData-Function_Function_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:syncData_sam|trigger=none}{code:language=javascript}
plugins.mobile.syncData()-Function_Function_sam|trigger=none}{code:language=javascript}
function onSyncAction(event)
{
	plugins.mobile.syncData(onSyncSuccess, onSyncError);
}

function onSyncSuccess(dataBytes)
{	
	if (dataBytes > 0) forms.contacts.showContacts(accountmanager_to_companies.companies_to_contacts);
}
 
function onSyncError(http_status_code, error_message)
{
	plugins.dialogs.showWarningDialog("Warning", 'Sync failed with http status code: ' + http_status_code + ', and error message: ' + error_message);
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}