com.darktalker.cordova.screenshot
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/com.darktalker.cordova.screenshot package

    0.1.6 • Public • Published

    cordova-screenshot

    NPM version

    The Screenshot plugin allows your application to take screenshots of the current screen and save them into the phone.

    how to install

    install it via cordova cli

    cordova plugin add https://github.com/gitawego/cordova-screenshot.git
    

    notice: in iOS, only jpg format is supported in Android, the default WebView and Crosswalk are both supported

    usage

    navigator.screenshot.save(function(error,res){
      if(error){
        console.error(error);
      }else{
        console.log('ok',res.filePath);
      }
    });

    take screenshot with jpg and custom quality

    navigator.screenshot.save(function(error,res){
      if(error){
        console.error(error);
      }else{
        console.log('ok',res.filePath);
      }
    },'jpg',50);

    define a filename

    navigator.screenshot.save(function(error,res){
      if(error){
        console.error(error);
      }else{
        console.log('ok',res.filePath); //should be path/to/myScreenshot.jpg
      }
    },'jpg',50,'myScreenShot');

    screenshot files are stored in /sdcard/Pictures for android.

    take screenshot and get it as Data URI

    navigator.screenshot.URI(function(error,res){
      if(error){
        console.error(error);
      }else{
        html = '<img style="width:50%;" src="'+res.URI+'">';
        document.body.innerHTML = html;
      }
    },50);

    usage in AngularJS

    .service('$cordovaScreenshot', ['$q', function ($q){
        return {
            capture: function (filename, extension, quality){
                extension = extension || 'jpg';
                quality = quality || '100';
     
                var defer = $q.defer();
                
                navigator.screenshot.save(function (error, res){
                    if (error) {
                        console.error(error);
                        defer.reject(error);
                    } else {
                        console.log('screenshot saved in: ', res.filePath);
                        defer.resolve(res.filePath);
                    }
                }, extension, quality, filename);
                
                return defer.promise;
            }
        };
    }])

    Known Issue

    in Android platform I receive the black image with crosswalk

    solution:

    add this line <preference name="CrosswalkAnimatable" value="true" /> in config.xml, see bug

    License

    this repo uses the MIT license

    Install

    npm i com.darktalker.cordova.screenshot

    DownloadsWeekly Downloads

    1,252

    Version

    0.1.6

    License

    MIT

    Last publish

    Collaborators

    • gitawego