- Version: 1.2.0
- GitHub:
- NPM: https://www.npmjs.com/package/nativescript-na-camera
- Downloads:
- Last Day: 0
- Last Week: 0
- Last Month: 0
NativeScript NA Camera plugin
NOTE! Android is currently not supported.
A NativeScript camera that utilizes AVFoundation for iOS.
Installation
$ tns plugin add nativescript-na-camera
Usage
XML
<Page navigatingTo="navigatingTo" xmlns:NACamera="nativescript-na-camera">
<StackLayout>
<NACamera:Camera id="cameraPreview" />
<Button text="Capture" id="capturePhoto" tap="capturePhoto" />
<Button text="New photo" id="newPhoto" tap="newPhoto" />
</StackLayout>
</Page>
JS
var NACamera = require("nativescript-na-camera");
var page;
exports.navigatingTo = function(args) {
page = args.object;
NACamera.start();
};
exports.capturePhoto = function(args) {
NACamera.capturePhoto({
saveToLibrary: true
}).then(function(image, savedToLibrary) {
NACamera.stop();
if(savedToLibrary) console.log("Photo was saved to library!");
// Do something more...
}, function(error) {
console.error(error);
});
};
exports.newPhoto = function(args) {
NACamera.start();
};
Note! NACamera.start() must be fired to initiate the camera preview. It is recommended to stop the camera once the preview is out of view in the UI using NACamera.stop().
Methods
capturePhoto()
To capture a photo.
The resolution of captured photo is the proportion of the camera preview.
capturePhoto(props)
- props - Set any capture properties (optional).
- saveToLibrary - Saves the photo to the library upon capture (defaults to
false). - mirrorCorrection - Correct mirroring when capturing with the front camera (defaults to
true). - playSound - Plays a capture sound (defaults to
true). - simulatorDebug - For testing on a simulator where a camera device is not available (defaults to
false). - simulatorImage - The image source (defaults to empty string).
- saveToLibrary - Saves the photo to the library upon capture (defaults to
- Returns a then promise:
- resolve
- image - The captured photo as an image source.
- savedToLibrary - Reference to
props.saveToLibrarywhich is eithertrueorfalse.
- reject
- error - The error message.
- resolve
NACamera.capturePhoto({
saveToLibrary: true
}).then(function(image, savedToLibrary) {
NACamera.stop();
if(savedToLibrary) console.log("Photo was saved to library!");
// Do something more...
}, function(error) {
console.error(error);
});
saveToLibrary()
Save an image to the library.
saveToLibrary(image)
- image - The image source that should be saved to the library.
- Returns
true.
NACamera.saveToLibrary(image);
setTorchMode()
Set the torch mode (if available).
setTorchMode(condition)
- condition - Boolean value.
- Returns
trueorfalsedepending on availability.
NACamera.setTorchMode(true); // Torch on
NACamera.setTorchMode(false); // Torch off
setFlashMode()
Set the flash mode (if available).
setFlashMode(condition)
- condition - Boolean value.
- Returns
trueorfalsedepending on availability.
NACamera.setFlashMode(true); // Flash on
NACamera.setFlashMode(false); // Flash off
setDevicePosition()
Set the camera device position (back or front camera, if available).
setDevicePosition(position)
- position - String value. Must be either
"back"or"front". - Returns
trueorfalsedepending on availability.
NACamera.setDevicePosition("back"); // Back camera
NACamera.setDevicePosition("front"); // Front camera
hasDevicePosition()
Check if a camera device position is available.
hasDevicePosition(position)
- position - String value. Must be either
"back"or"front". - Returns
trueorfalsedepending on availability.
var hasBackCamera = NACamera.hasDevicePosition("back");
var hasFrontCamera = NACamera.hasDevicePosition("front");
Other methods
start()- Start the camera session.- Returns
boolean
- Returns
stop()- Stop the camera session.- Returns
boolean
- Returns
devicesAvailable()- Check if any camera is available.- Returns
boolean
- Returns
getTorchMode()- Get the current torch mode.- Returns
boolean
- Returns
hasTorchMode()- Check if the camera's current device position has a torch available.- Returns
boolean
- Returns
getFlashMode()- Get the current flash mode.- Returns
boolean
- Returns
hasFlashMode()- Check if the camera's current device position has a flash available.- Returns
boolean
- Returns
getDevicePosition()- Check if the camera's current device position is either back or front.- Returns
"back"or"front"
- Returns
Known issues
- No Android compatibility, yet.
To-do list
- Video recording
Please post an issue if you have any other ideas!
History
Version 1.1.0 (November 21, 2016)
- Pinch-to-zoom feature
- Tap-to-focus feature
- Added mirror correction property when capturing with the front camera (See
capturePhoto()documentation).
Version 1.0.0 (November 10, 2016)
- First release!
Credits
License
MIT - for {N} version 2.0.0+