Hi!
I'm using Phonegap with Cordova 2.2 to export my website to an app. I wanted to use a Screenshot plugin I've found on Github. Can't seem to get it to work, though. Here's the code:
Screenshot.m
//
// Screenshot.h
//
// Created by Simon Madine on 29/04/2010.
// Copyright 2010 The Angry Robot Zombie Factory.
// - Converted to Cordova 1.6.1 by Josemando Sobral.
// MIT licensed
//
// Modifications to support orientation change by @ffd8
//
#import "Screenshot.h"
@implementation Screenshot
@synthesize webView;
- (void)saveScreenshot:(NSArray*)arguments withDict:(NSDictionary*)options
{
CGRect imageRect;
CGRect screenRect = [[UIScreen mainScreen] bounds];
// statusBarOrientation is more reliable than UIDevice.orientation
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {
// landscape check
imageRect = CGRectMake(0, 0, CGRectGetHeight(screenRect), CGRectGetWidth(screenRect));
} else {
// portrait check
imageRect = CGRectMake(0, 0, CGRectGetWidth(screenRect), CGRectGetHeight(screenRect));
}
UIGraphicsBeginImageContext(imageRect.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor blackColor] set];
CGContextTranslateCTM(ctx, 0, 0);
CGContextFillRect(ctx, imageRect);
[webView.layer renderInContext:ctx];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
UIGraphicsEndImageContext();
UIAlertView *alert= [[UIAlertView alloc] initWithTitle:nil message:@"Image Saved" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
@endScreenshot.h
//
// Screenshot.h
//
// Created by Simon Madine on 29/04/2010.
// Copyright 2010 The Angry Robot Zombie Factory.
// - Converted to Cordova 1.6.1 by Josemando Sobral.
// MIT licensed
//
#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>
#import <Cordova/CDVPlugin.h>
@interface Screenshot : CDVPlugin {
}
- (void)saveScreenshot:(NSArray*)arguments withDict:(NSDictionary*)options;
@endScreenshot.js
/*
* This code is adapted from the work of Michael Nachbaur
* by Simon Madine of The Angry Robot Zombie Factory
* - Converted to Cordova 1.6.1 by Josemando Sobral.
* 2012-07-03
* MIT licensed
*/
/*
* Temporary Scope to contain the plugin.
* - More information here:
* https://github.com/apache/incubator-cordova-ios/blob/master/guides/Cordova%20Plugin%20Upgrade%20Guide.md
*/
(function() {
/* Get local ref to global PhoneGap/Cordova/cordova object for exec function.
- This increases the compatibility of the plugin. */
var cordovaRef = window.PhoneGap || window.Cordova || window.cordova; // old to new fallbacks
/**
* This class exposes the ability to take a Screenshot to JavaScript
*/
function Screenshot() { }
/**
* Save the screenshot to the user's Photo Library
*/
Screenshot.prototype.saveScreenshot = function() {
cordovaRef.exec(null, null, "Screenshot", "saveScreenshot", []);
};
cordovaRef.addConstructor(function() {
if (!window.plugins) {
window.plugins = {};
}
if (!window.plugins.Screenshot) {
window.plugins.Screenshot = new Screenshot();
}
});
})(); /* End of Temporary Scope. */Now, basically I just copied this from another Stack Overflow thread: iOS Screenshot plugin on PhoneGap 2.1
The files are in the correct locations and I've edited Cordova.plist and added "Screenshot" to both key and value.
I want to execute the screenshot by this code, but can't it get to work. Any ideas?
<script type="text/javascript" src="cordova-2.2.0.js"></script>
<script type="text/javascript" src="Screenshot.js"></script>
<script>
document.addEventListener("deviceready",onDeviceReady,false);
// Cordova is ready to be used!
//
function onDeviceReady() {
$('#13zoom').click(function(){
window.plugins.Screenshot.saveScreenshot();
});
}
</script>--
-- You received this message because you are subscribed to the Google
Groups "phonegap" group.
To post to this group, send email to phon...@googlegroups.com
To unsubscribe from this group, send email to
phonegap+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/phonegap?hl=en?hl=en
For more info on PhoneGap or to download the code go to www.phonegap.com
To compile in the cloud, check out build.phonegap.com