/* * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * */ /* * Cordova Sample App * */ // Geolocation var watchLocationID = null; function onGeoLocationSuccess(position) { var element = document.getElementById('geolocation'); element.innerHTML = 'Latitude: ' + position.coords.latitude + '
' + 'Longitude: ' + position.coords.longitude + '
' + '
' + element.innerHTML; } function onGeoLocationError(error) { debugPrint('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); } function getCurrentPosition() { var geolocation = document.getElementById('geolocation'); try { Geolocation.useCordova(); geolocation.style.display = 'block'; navigator.geolocation.getCurrentPosition(onGeoLocationSuccess, onGeoLocationError, { frequency: 3000 }); } catch(e) { alert(e.message); } } function toggleWatchPosition(em) { var geolocation = document.getElementById('geolocation'); if(em.value == "GeoLocation.StartWatching") { em.value = "GeoLocation.StopWatching"; geolocation.style.display = 'block'; try { Geolocation.useCordova(); watchLocationID = navigator.geolocation.watchPosition(onGeoLocationSuccess, onGeoLocationError, { frequency: 3000 }); } catch(e) { alert(e.message); } } else { em.value = "GeoLocation.StartWatching"; geolocation.style.display = 'none'; try { navigator.geolocation.clearWatch(watchLocationID); geolocation.innerHTML = ''; } catch(e) { alert(e.message); } } } // Acceleration var watchAccelerationID = null; function onAccelerationSuccess(acceleration) { var element = document.getElementById('accelerometer'); element.innerHTML = 'Acceleration X: ' + acceleration.x + '
' + 'Acceleration Y: ' + acceleration.y + '
' + 'Acceleration Z: ' + acceleration.z + '
' + 'Timestamp: ' + acceleration.timestamp + '
'; } function onAccelerationError() { alert('onError!'); } function startWatchAcceleration() { var options = { frequency: 3000 }; watchAccelerationID = navigator.accelerometer.watchAcceleration(onAccelerationSuccess, onAccelerationError, options); } function stopWatchAcceleration() { if (watchAccelerationID) { navigator.accelerometer.clearWatch(watchAccelerationID); watchAccelerationID = null; } } function getCurrentAcceleration() { var accelerometer = document.getElementById('accelerometer'); try { accelerometer.style.display = 'block'; navigator.accelerometer.getCurrentAcceleration(onAccelerationSuccess, onAccelerationError, { frequency: 5000 }); } catch(e) { alert(e.message); } } function toggleStartAcceleration(em) { try { var accelerometer = document.getElementById('accelerometer'); if(em.value == "Accelerometer.watchAcceleration") { em.value = "Accelerometer.clearWatch"; accelerometer.style.display = 'block'; startWatchAcceleration(); } else { em.value = "Accelerometer.watchAcceleration"; accelerometer.style.display = 'none'; stopWatchAcceleration(); } } catch(e) { alert(e.message); } } // Utility Function function debugPrint(body) { var list = document.getElementById("debuglist"); var item = document.createElement("li"); item.appendChild(document.createTextNode(body)); list.appendChild(item); } // Stock Browser Test (Any URL request launches Stock browser) function launchExternalBrowser() { window.location = "http://www.phonegap.com"; } // Network function hostIsReachable() { try { var network = document.getElementById('network'); var callback = function(reachability) { console.log(reachability); var networkState = reachability.code; var http_code = reachability.http_code; var states = []; states[NetworkStatus.NOT_REACHABLE] = 'No network connection'; states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection'; states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection'; network.style.display = 'block'; network.innerHTML = 'Code: '+reachability.code+' Connection type: '+states[networkState]; } navigator.network.isReachable("http://phonegap.com", callback, {}); } catch(e) { debugPrint("hostIsReachable(): "+e.message); } } // System function getSystemInfo() { try { var system = document.getElementById("system"); system.style.display = "block"; system.innerHTML = 'Device Name: ' + device.name + '
' + 'Device Cordova: ' + device.cordova + '
' + 'Device Platform: ' + device.platform + '
' + 'Device UUID: ' + device.uuid + '
' + 'Device Version: ' + device.version + '
'; } catch(e) { debugPrint("Error Occured: "+e.message); } } // DebugConsole function Log() { var log_statement = document.getElementById("log_statement").value; console.log(log_statement); console.warn(log_statement); console.error(log_statement); console.log({test:'pouet', test2:['pouet1', 'pouet2']}); } // Contacts function createContact() { var myContact = navigator.service.contacts.create({displayName: "Test User"}); myContact.gender = "male"; console.log("The contact, "+myContact.displayName + ", is of the "+myContact.gender +" gender"); } function saveContact() { try { var onSuccess = function(result) { debugPrint("Save Success: "+result.message); }; var onError = function(contactError) { debugPrint("Error = "+contactError.code); }; var contact = navigator.service.contacts.create(); contact.name = new ContactName(); contact.name.familyName = "Doe"; contact.name.givenName = "John"; contact.displayName = "John Doe"; contact.nickname = "Plumber"; contact.phoneNumbers = [new ContactField("Mobile", "6047894567"), new ContactField("Home", "7789989674"), new ContactField("Other", "7789989673")]; contact.emails = [new ContactField("Personal", "nomail@noset.com"), new ContactField("Work", "nomail2@noset.com"), new ContactField("Other", "nomail3@noset.com")]; contact.urls = [new ContactField("Work", "http://www.domain.com"), new ContactField("Personal", "http://www.domain2.com")]; contact.organization = new ContactOrganization(); contact.organization.name = "Nitobi Software Inc"; contact.organization.title = "Software Engineer"; contact.birthday = new Date(); contact.address = new ContactAddress(); contact.address.streetAddress = "200 Abbott Street"; contact.address.locality = "Vancouver"; contact.address.region = "BC"; contact.address.postalCode = "V6Z2X6"; contact.address.country = "Canada"; contact.save(onSuccess, onError); } catch(e) { debugPrint("Error Occured: "+e.message); } } function findContact() { try { var onSuccess = function(contacts) { debugPrint("Found "+contacts.length+" contacts."); // var contacts = navigator.service.contacts.results; // var contactStr = "IDs found: " // for(i in contacts) { // contactStr += contacts[i].id + " "; // } // debugPrint(contactStr); }; var onFailure = function() { debugPrint("ERROR"); }; navigator.service.contacts.find(["displayName", "firstName"], onSuccess, onFailure, {filter:"7789989674"}); } catch(e) { debugPrint("Error Occured: "+e.message); } } function removeContacts() { try { var onSuccess = function(result) { debugPrint(result.message); }; var onFailure = function(result) { debugPrint("ERROR in Removing Contact: "+result.message); }; var toRemove = navigator.service.contacts.results; while(toRemove.length > 0) { var contact = toRemove.shift(); contact.remove(onSuccess, onFailure); } } catch(e) { debugPrint("Error Occured in remove Contact: "+e.message); } } // Compass var watchCompassId = null; function startWatchCompass() { var options = { frequency: 3000 }; var onSuccess = function(compass) { var element = document.getElementById('compass'); element.innerHTML = 'Compass X: ' + compass.x + '
' + 'Compass Y: ' + compass.y + '
' + 'Compass Z: ' + compass.z + '
' + 'Timestamp: ' + compass.timestamp + '
'; }; var onFail = function() { debugPrint('Compass Error!'); }; watchCompassId = navigator.compass.watchHeading(onSuccess, onFail, options); } function stopWatchCompass() { try { navigator.compass.clearWatch(watchCompassId); watchCompassId= null; } catch(e) { debugPrint("stopWatchCompass: "+e.message); } } function getCurrentHeading() { try { var compass = document.getElementById('compass'); var onSuccess = function(compass) { var element = document.getElementById('compass'); element.innerHTML = 'Compass X: ' + compass.x + '
' + 'Compass Y: ' + compass.y + '
' + 'Compass Z: ' + compass.z + '
' + 'Timestamp: ' + compass.timestamp + '
'; } var onFail = function() { debugPrint('Compass Error!'); } compass.style.display = 'block'; navigator.compass.getCurrentHeading(onSuccess, onFail, { frequency: 5000 }); } catch(e) { alert(e.message); } } function toggleStartCompass(em) { try { var compass = document.getElementById('compass'); if(em.value == "Compass.watchHeading") { em.value = "Compass.clearWatch"; compass.style.display = 'block'; startWatchCompass(); } else { em.value = "Compass.watchHeading"; compass.style.display = 'none'; stopWatchCompass(); } } catch(e) { alert(e.message); } } // Notification function notificationAlert() { var complete = function(button) { debugPrint("Alert button clicked: "+button); } try { navigator.notification.alert("This is an alert Dialog",complete, "Alert Title", "OK"); } catch(e) { debugPrint(e.message); } } function notificationConfirm() { var complete = function(button) { debugPrint("Alert button clicked: "+button); } try { navigator.notification.confirm("This is an alert Dialog",complete, "Alert Title", "OK,Cancel"); } catch(e) { debugPrint(e.message); } } function notificationVibrate() { try { navigator.notification.vibrate(3000); } catch(e) { debugPrint(e.message); } } function notificationBeep() { try { navigator.notification.beep(4); } catch(e) { debugPrint(e.message); } } // Camera function getPicture() { try { var successCallback = function(uri) { var image = document.getElementById("picture"); debugPrint(uri); image.src = uri; } var errorCallback = function(message) { debugPrint("Camera Failed: "+message); } navigator.camera.getPicture(successCallback, errorCallback, {}); } catch(e) { debugPring(e.message); } }