+ All Categories
Home > Technology > PhoneGap: Accessing Device Capabilities

PhoneGap: Accessing Device Capabilities

Date post: 07-May-2015
Category:
Upload: ivano-malavolta
View: 1,320 times
Download: 1 times
Share this document with a friend
Description:
PhoneGap: Accessing Device Capabilities This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2013. http://www.ivanomalavolta.com
78
Transcript
Page 1: PhoneGap: Accessing Device Capabilities
Page 2: PhoneGap: Accessing Device Capabilities
Page 3: PhoneGap: Accessing Device Capabilities

navigator.device.capture

Page 4: PhoneGap: Accessing Device Capabilities

navigator.device.capture

Page 5: PhoneGap: Accessing Device Capabilities

Page 6: PhoneGap: Accessing Device Capabilities
Page 7: PhoneGap: Accessing Device Capabilities

var imageModes =

navigator.device.capture.supportedImageModes;

for each (var mode in imageModes) {

console.log(mode.type);

console.log(mode.height);

console.log(mode.width);

}

Page 8: PhoneGap: Accessing Device Capabilities

capture

Page 9: PhoneGap: Accessing Device Capabilities
Page 10: PhoneGap: Accessing Device Capabilities
Page 11: PhoneGap: Accessing Device Capabilities

Page 12: PhoneGap: Accessing Device Capabilities

var options = { limit: 2, duration: 5 };

navigator.device.capture.captureAudio(win, fail, options);

function win(mediaFiles) {

var i;

for (i=0; i<mediaFiles.length; i++) {

console.log(mediaFiles[i]);

}

}

function fail(error) {

console.log(„Error with code: ' + error.code);

}

Page 13: PhoneGap: Accessing Device Capabilities
Page 14: PhoneGap: Accessing Device Capabilities
Page 15: PhoneGap: Accessing Device Capabilities

captureAudio

Page 16: PhoneGap: Accessing Device Capabilities

Page 17: PhoneGap: Accessing Device Capabilities

var options = { limit: 3};

navigator.device.capture.captureImage(win, fail, options);

function win(mediaFiles) {

var i; for (i=0; i<mediaFiles.length; i++) { upload(mediaFiles[i]); }

}

function fail(error) { console.log(„Error with code: ' + error.code);

}

Page 18: PhoneGap: Accessing Device Capabilities
Page 19: PhoneGap: Accessing Device Capabilities
Page 20: PhoneGap: Accessing Device Capabilities

captureAudio

Page 21: PhoneGap: Accessing Device Capabilities

Page 22: PhoneGap: Accessing Device Capabilities

navigator.device.capture.captureVideo(win, fail, {});

function win(mediaFiles) {

var i;

for (i=0; i<mediaFiles.length; i++) {

upload(mediaFiles[i]);

}

}

function fail(error) {

console.log(„Error with code: ' + error.code);

}

Page 23: PhoneGap: Accessing Device Capabilities
Page 24: PhoneGap: Accessing Device Capabilities
Page 25: PhoneGap: Accessing Device Capabilities
Page 26: PhoneGap: Accessing Device Capabilities

CaptureError.CAPTURE_INTERNAL_ERR

CaptureError.CAPTURE_APPLICATION_BUSY

CaptureError.CAPTURE_INVALID_ARGUMENT

CaptureError.CAPTURE_NO_MEDIA_FILES

CaptureError.CAPTURE_NOT__SUPPORTED

Page 27: PhoneGap: Accessing Device Capabilities
Page 28: PhoneGap: Accessing Device Capabilities
Page 29: PhoneGap: Accessing Device Capabilities

getPicture()

Page 30: PhoneGap: Accessing Device Capabilities
Page 31: PhoneGap: Accessing Device Capabilities
Page 32: PhoneGap: Accessing Device Capabilities
Page 33: PhoneGap: Accessing Device Capabilities
Page 34: PhoneGap: Accessing Device Capabilities
Page 35: PhoneGap: Accessing Device Capabilities
Page 36: PhoneGap: Accessing Device Capabilities
Page 37: PhoneGap: Accessing Device Capabilities

navigator.camera.getPicture(win, fail,

{ quality: 50,

destinationType: destinationType.FILE_URI,

pictureSource.PHOTOLIBRARY

});

function win(imageURI) {

var element = $(“#block”);

element.src(imageURI);

}

// fail function omitted here

Page 38: PhoneGap: Accessing Device Capabilities
Page 39: PhoneGap: Accessing Device Capabilities

navigator.contacts

navigator.contacts

Page 40: PhoneGap: Accessing Device Capabilities

navigator.contacts.create(properties)

Page 41: PhoneGap: Accessing Device Capabilities

navigator.contacts.create(properties)

properties

var contact = navigator.contacts.create({

"displayName": “Ivano“

});

Page 42: PhoneGap: Accessing Device Capabilities

contacts.find

Page 43: PhoneGap: Accessing Device Capabilities
Page 44: PhoneGap: Accessing Device Capabilities

Page 45: PhoneGap: Accessing Device Capabilities

var contact = navigator.contacts.create({

"displayName": “Ivano“

});

var name = new ContactName();

name.givenName = “Ivano“;

name.familyName = “Malavolta“;

contact.name = name;

contact.birthday = new Date(“19 July 1983");

contact.save(win, fail);

function win(contact) { alert("Save Success");

};

function fail(contactError) { alert("Error = " + contactError.code);

};

Page 46: PhoneGap: Accessing Device Capabilities

navigator.contacts.find(

contactFields,

contactSuccess,

contactError,

contactFindOptions

);

Page 47: PhoneGap: Accessing Device Capabilities
Page 48: PhoneGap: Accessing Device Capabilities

var fields = ["displayName", "name"]; // or [“*”]

navigator.contacts.find(fields, win, fail);

function win(contacts) {

console.log(„ok');

};

function fail(err) {

console.log(err.code);

};

Page 49: PhoneGap: Accessing Device Capabilities
Page 50: PhoneGap: Accessing Device Capabilities

var options = new ContactFindOptions();

options.filter = “Ivano";

options.multiple = true;

filter = ["displayName",“birthday"];

navigator.contacts.find(filter, win, fail, options);

function win(contacts) {

for (var i=0; i<contacts.length; i++) {

console.log(contacts[i].displayName);

}

};

function fail(contactError) {

alert("Error = " + contactError.code);

};

Page 51: PhoneGap: Accessing Device Capabilities

fail

ContactError.UNKNOWN_ERROR

ContactError.INVALID_ARGUMENT_ERROR

ContactError.TIMEOUT_ERROR

ContactError.PENDING_OPERATION_ERROR

ContactError.IO_ERROR

ContactError.NOT_SUPPORTED_ERROR

ContactError.PERMISSION_DENIED_ERROR

Page 52: PhoneGap: Accessing Device Capabilities
Page 53: PhoneGap: Accessing Device Capabilities

– ontouchstart, onclick, ...

Page 54: PhoneGap: Accessing Device Capabilities

document.addEventListener(EVENTNAME, onEvent, false);

function onEvent() {

// handle the event

}

Page 55: PhoneGap: Accessing Device Capabilities

• deviceready

• pause, resume

• online, offline

• batterycritical, batterylow, batterystatus

• backbutton, menubutton, searchbutton

• startcallbutton, endcallbutton

• volumedownbutton, volumeupbutton

Page 56: PhoneGap: Accessing Device Capabilities

deviceready

Page 57: PhoneGap: Accessing Device Capabilities

pause

resume

Page 58: PhoneGap: Accessing Device Capabilities

online

offline

Page 59: PhoneGap: Accessing Device Capabilities

navigator.network.connection

type

Connection.UNKNOWN

Connection.ETHERNET

Connection.WIFI

Connection.CELL_2G

Connection.CELL_3G

Connection.CELL_4G

Connection.NONE

Page 60: PhoneGap: Accessing Device Capabilities

batterycritical

batterylow

batterycritical

batterystatus

Page 61: PhoneGap: Accessing Device Capabilities
Page 62: PhoneGap: Accessing Device Capabilities

backbutton

menubutton

searchbutton

Page 63: PhoneGap: Accessing Device Capabilities
Page 64: PhoneGap: Accessing Device Capabilities

Page 65: PhoneGap: Accessing Device Capabilities

navigator.notification.alert(message,

callback, [title], [button])

Page 66: PhoneGap: Accessing Device Capabilities

navigator.notification.alert(message,

callback, [title], [buttons])

Page 67: PhoneGap: Accessing Device Capabilities

navigator.notification.prompt(message,

callback, [title], [buttons])

Page 68: PhoneGap: Accessing Device Capabilities

navigator.notification.beep(times)

Page 69: PhoneGap: Accessing Device Capabilities

navigator.notification.vibrate(milliseconds)

Page 70: PhoneGap: Accessing Device Capabilities
Page 71: PhoneGap: Accessing Device Capabilities

navigator.accelerometer

Page 72: PhoneGap: Accessing Device Capabilities

getCurrentAcceleration(win, fail);

Page 73: PhoneGap: Accessing Device Capabilities

var watchID = navigator.accelerometer.watchAcceleration(win, fail, [options]);

Page 74: PhoneGap: Accessing Device Capabilities

clearWatch(watchID);

Page 75: PhoneGap: Accessing Device Capabilities

these values include the effect of

gravity (9.81 m/s^2)

Page 76: PhoneGap: Accessing Device Capabilities

var options = { frequency: 3000 };

var watchID = navigator.accelerometer.watchAcceleration(win, fail, options);

function win(acc) {

if((acc.x == 0) && (acc.y == 0) && (acc.z == 9,81)) {

console.log(“I am on a table”);

stop();

}

}

function fail() {

console.log(“error”);

}

function stop() {

if(watchID) {

navigator.accelerometer.clearWatch(watchID); watchID = null;

}

}

Page 77: PhoneGap: Accessing Device Capabilities

var previousReading = {x: null, y: null, z: null};

navigator.accelerometer.watchAcceleration(function (reading) {

var changes = {},

bound = 3;

if (previousReading.x !== null) {

changes.x = Math.abs(previousReading.x, reading.x);

changes.y = Math.abs(previousReading.y, reading.y);

changes.z = Math.abs(previousReading.z, reading.z);

}

if (changes.x > bound && changes.y > bound && changes.z > bound) {

console.log(“shake detected”);

}

previousReading = {

x: reading.x,

y: reading.y,

z: reading.z

}

}, null, { frequency: 300 });

Page 78: PhoneGap: Accessing Device Capabilities

Recommended