Here is a brief description on how to get started with RhoConnect.js. You may use code from samples/app-template directory as a template to start your own application.
Load the rhoconnect.js library:
<head>
<script type="text/javascript" charset="utf-8" src="external/jquery/jquery-1.6.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="external/jquery/jquery.base64.min.js"></script>
<script type="text/javascript" charset="utf-8" src="external/jquery/json.js"></script>
<script type="text/javascript">
RhoConfig = {
// is used to form the websql database name as <appName>_<login>
appName: 'rhoPGapSenchaDataSample',
// RhoConnect application URL
syncServer: 'http://rhohub-lars-692f63a7.rhoconnect.com/application'
};
</script>
<script type="text/javascript" charset="utf-8" src="js/rhoconnect-0_9.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/your_application.js"></script>
</head>
To use rhoconnect.js, you need to login and initialize rhoconnect.js with model definitions as in the following example.
function onSomeClick() {
loginRhoConnect("someUser", "somePass", false).done(function(){
// start you business logic here, say..
var syncInterval = setInterval(function(){
RhoConnect.syncAllSources().done(function(){
// performSomeRealWork();
// updateSomeUI();
}).fail(function(errCode, err){
alert('Data sync error: ' +errCode);
clearInterval(syncInterval);
syncInterval = null;
});
}, 3 * 1000)
});
}
var modelDefinitions = [
{
name: 'Customer',
fields: [
{name: 'id', type: 'int'},
{name: 'first', type: 'string'},
{name: 'last', type: 'string'},
{name: 'phone', type: 'string'},
{name: 'email', type: 'string'},
{name: 'address', type: 'string'},
{name: 'city', type: 'string'},
{name: 'state', type: 'string'},
{name: 'zip', type: 'string'},
{name: 'lat', type: 'string'},
{name: 'long', type: 'string'}
]
}
];
function loginRhoConnect(username, password, doDataReset) {
return $.Deferred(function(dfr){
RhoConnect.login(username, password,
new RhoConnect.SyncNotification(), doDataReset).done(function(){
// Init DB for the user on success
RhoConnect.init(modelDefinitions /*, dataApiType, syncProgressCallback */).done(function(){
dfr.resolve();
}).fail(function(errCode, errMessage){
alert('DB init error: ' +errCode);
dfr.reject(errCode, errMessage);
});
}).fail(function(errCode, err){
alert('RhoConnect login error: ' +errCode);
dfr.reject(errCode, err);
});
}).promise();
}
You can use RhoConnect.dataAccessObjects() to obtain data API specific objects to access your data. See the API reference.