diff --git a/Definitions/phonegap-2.2.d.ts b/Definitions/phonegap-2.2.d.ts new file mode 100644 index 000000000..ceb87f325 --- /dev/null +++ b/Definitions/phonegap-2.2.d.ts @@ -0,0 +1,54 @@ +// Type definitions for PhoneGap 2.2 +// Project: http://phonegap.com +// Definitions by: Boris Yankov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +interface Acceleration { + x: number; + y: number; + z: number; + timestamp: number; //DOMTimeStamp; +} + +interface AccelerometerOptions { + frequency?: number; +} + +interface Accelerometer { + getCurrentAcceleration(accelerometerSuccess: (acceleration: Acceleration) => void , accelerometerError: () => void ): void; + watchAcceleration(accelerometerSuccess: (acceleration: Acceleration) => void , accelerometerError: () => void , accelerometerOptions?: AccelerometerOptions): void; + clearWatch(watchID: number): void; +} + +interface CameraPopoverOptions { + x: number; + y: number; + width: number; + height: number; + arrowDir: number; +} + +interface CameraOptions { + quality?: number; + destinationType?: number; + sourceType?: number; + allowEdit?: bool; + encodingType?: number; + targetWidth?: number; + targetHeight?: number; + mediaType?: number; + correctOrientation?: bool; + saveToPhotoAlbum?: bool; + popoverOptions?: number; +} + +interface Camera { + getPicture(cameraSuccess: (imageData: string) => void , cameraError: (message: string) => void , cameraOptions?: CameraOptions): void; + cleanup(cameraSuccess: (imageData: string) => void , cameraError: (message: string) => void ): void; +} + +interface NavigatorPhonegap { + accelerometer: Accelerometer; + camera: Camera; +} \ No newline at end of file diff --git a/Tests/phonegap-tests.ts b/Tests/phonegap-tests.ts new file mode 100644 index 000000000..b53bd0903 --- /dev/null +++ b/Tests/phonegap-tests.ts @@ -0,0 +1,79 @@ +/// + +function test_accelerometer() { + var watchID = null; + var options = { frequency: 3000 }; + + watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); + + if (watchID) { + navigator.accelerometer.clearWatch(watchID); + watchID = null; + } + function onSuccess(acceleration: Acceleration) { + var element = document.getElementById('accelerometer'); + element.innerHTML = 'Acceleration X: ' + acceleration.x + '
' + + 'Acceleration Y: ' + acceleration.y + '
' + + 'Acceleration Z: ' + acceleration.z + '
' + + 'Timestamp: ' + acceleration.timestamp + '
'; + } + function onError() { + alert('onError!'); + } +} + +function test_camera() { + var pictureSource; + var destinationType; + document.addEventListener("deviceready", onDeviceReady, false); + function onDeviceReady() { + pictureSource = navigator.camera.PictureSourceType; + destinationType = navigator.camera.DestinationType; + } + function onPhotoDataSuccess(imageData) { + var smallImage = document.getElementById('smallImage'); + smallImage.style.display = 'block'; + smallImage.src = "data:image/jpeg;base64," + imageData; + } + function onPhotoURISuccess(imageURI) { + var largeImage = document.getElementById('largeImage'); + largeImage.style.display = 'block'; + largeImage.src = imageURI; + } + function capturePhoto() { + navigator.camera.getPicture(onPhotoDataSuccess, onFail, { + quality: 50, + destinationType: destinationType.DATA_URL + }); + } + function capturePhotoEdit() { + navigator.camera.getPicture(onPhotoDataSuccess, onFail, { + quality: 20, allowEdit: true, + destinationType: destinationType.DATA_URL + }); + } + function getPhoto(source) { + navigator.camera.getPicture(onPhotoURISuccess, onFail, { + quality: 50, + destinationType: destinationType.FILE_URI, + sourceType: source + }); + } + function onFail(message) { + alert('Failed because: ' + message); + } + + var popover = new CameraPopoverOptions(300, 300, 100, 100, 1); + var options = { quality: 50, destinationType: 1, sourceType: 1, popoverOptions: popover }; + + navigator.camera.getPicture(onSuccess, onFail, options); + + function onSuccess(imageData) { + var image = document.getElementById('myImage'); + image.src = "data:image/jpeg;base64," + imageData; + } + + function onFail(message) { + alert('Failed because: ' + message); + } +} \ No newline at end of file