Introducing HTML and XHTML

Download Report

Transcript Introducing HTML and XHTML

Phonegap Bridge – Device, Network,
Console, Geolocation API’s
CIS 136 Building Mobile Apps
1
Device API
2
DevicePlug-in
org.apache.cordova.device
describes the device's hardware and software
Global in scope, but not available until the device is ready
Device object has 5 properties








3
cordova
model
platform
uuid
version
device.cordova
Gets the version of Cordova running on the device
Ex:


document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$(‘info’).html(device.cordova);
}
4
device.model
Gets the the name of the device's model or product


set by the device manufacturer and may be different across
versions of the same product

Might get the production code name
Android:
Nexus One
returns "Passion" (Nexus One code name)
Motorola Droid returns "voles"
BlackBerry: Torch 9800
returns "9800"
iOS:
for the iPad Mini, returns iPad2,5;
iPhone 5 is iPhone 5,1.
Ex:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$(‘info’).html(device.model);
}
5
device.platform

Gets the operating system name

Ex:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$(‘info’).html(device.platform);
}
6
device.uuid
Gets the Universally Unique Identifier



a 128-bit value that is ‘practically unique’
determined by the device manufacturer and are specific to the
device's platform or model.
Ex:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$(‘info’).html(device.uuid);
}
7
device.version
Gets the operating system version


Kitkat 4.4.4
Ex:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$(‘info’).html(device.uuid);
}
8
Network Information API
9
Network Information Plug-in
org.apache.cordova.network-information



provides information about the device's cellular and wifi
connection
Indicates if the device has an internet connection
Connection Object has 1 property and 8 constants









10
connection.type
Connection.UNKNOWN
Connection.ETHERNET
Connection.WIFI
Connection.CELL_2G
Connection.CELL_3G
Connection.CELL_4G
Connection.CELL
Connection.NONE
navigator.connection.type


determine the device's network connection state, and
type of connection
Ex:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var networkState = navigator.connection.type;
$(‘info’).html(networkState);
}
11
Network States

Using the type of connection, coupled with the
translation of network state constants, can provide
textual description - quirky
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI]
= 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.CELL]
= 'Cell generic connection';
states[Connection.NONE]
= 'No network connection';
$(‘info’).html(states[networkState]);
} 12
Network related events

offline - fires when an application goes offline, and the device
is not connected to the Internet
document.addEventListener("offline", yourCallbackFunction, false);

online - fires when an application goes online, and the device
becomes connected to the Internet
document.addEventListener("offline", yourCallbackFunction, false);
13
Console API
14
Cordova Console Plugin
org.apache.cordova.console


ensure that console.log() is as useful as it can be
Ex:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(“message to console – Hello there”);
}
15
geolocation API
16
Geolocation Plug-in
org.apache.cordova.geolocation



Makes the app location-aware
information about the device's location, such as latitude
and longitude
Common sources of location information include:


Global Positioning System (GPS)
location inferred from network signals such as:


IP address, RFID, WiFi and Bluetooth MAC addresses, and
GSM/CDMA cell IDs
There is no guarantee that the API returns the device's
actual location.
17
navigator.geolocation


determine the device's network connection state, and
type of connection
Has 3 methods




getCurrentPosition
watchPosition
clearWatch
Exposes 3 objects



18
Position
PositionError
coordinates
navigator.geolocation.getCurrentPosition

Returns the device's current position to the Success
callback with a Position object as the parameter
Position object contains the current GPS coordinates
Ex:


document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(success,error);
}
function success(position)
{
// gets position object
}
function error(positionerror)
{
//gets PositionError object
}
19
navigator.geolocation.getCurrentPosition

Position object has 7 coordinate properties and a
timestamp









position.coords.latitude
position.coords.longitude
position.coords.altitude
position.coords.accuracy
position.coords.altitudeAccuracy
position.coords.heading
position.coords.speed
position.timestamp
Ex:
20
navigator.geolocation.watchPosition

Returns the device's current position when a change in
position is detected
Returns the position to the Success callback with a Position
object as the parameter
 Position object contains the current GPS coordinates
Ex:


document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
watchID = navigator.geolocation.watchPosition(success,error,opts);
}
function success(position)
{
// gets position object
}
function error(positionerror)
{
21
//gets PositionError object
navigator.geolocation.watchPosition

Gets a watchID that references the watch position
interval

optional parameters customize the retrieval of the position


Timeout - maximum length of time (milliseconds) that is allowed to
pass from the call to get until the call to watch, until the success
event occurs (number)
enableHighAccuracy -By default, the device attempts to retrieve a
Position using network-based methods


22
Setting this property to true tells the framework to use more accurate
methods, such as satellite positioning. (Boolean)
maximumAge: cached position whose age is no greater than the
specified time in milliseconds (number)
navigator.geolocation.clearWatch

Like a timer - Stops watching for changes to the device's
location referenced by the watchID parameter
var watchID =
navigator.geolocation.watchPosition(onSuccess, onError, {
enableHighAccuracy: true });
…. Later…
navigator.geolocation.clearWatch(watchID);
23
Position object

Position object has 7 coordinate properties and a
timestamp









position.coords.latitude
position.coords.longitude
position.coords.altitude
position.coords.accuracy
position.coords.altitudeAccuracy
position.coords.heading
position.coords.speed
position.timestamp
Ex:
24
Position error object

Created when an error occurs


code: A predefined error code
message: Error message describing the details of the error
encountered
Codes:


PositionError.PERMISSION_DENIED


•PositionError.POSITION_UNAVAILABLE


Returned when the device is unable to retrieve a position
•PositionError.TIMEOUT

25
Returned when users do not allow the app to retrieve position
information
Returned when the device is unable to retrieve a position within the time
specified by the timeout included in geolocationOptions
Concerns

Collection and use of geolocation data raises important
privacy issues



app's privacy policy should discuss:




sensitive because it can reveal user's whereabouts
if stored, the history of their travels
how the app uses geolocation data
whether it is shared with any other parties
the level of precision of the data (for example, coarse, fine, ZIP
code level)
Should obtain the user's permission (e.g., by presenting
choices for OK and No Thanks).
26