Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b26b55a061 | ||
|
|
bac8ff71a3 | ||
|
|
ed8a8f13d3 | ||
|
|
3d740e8e63 | ||
|
|
1eb312609c | ||
|
|
ce3f8563c4 | ||
|
|
59998f3950 | ||
|
|
e4dfa52b05 | ||
|
|
4080c64451 | ||
|
|
c744de9fb1 | ||
|
|
e2dcccf17e | ||
|
|
d0f536a8b9 | ||
|
|
ec45e6aabb | ||
|
|
c4009429a4 | ||
|
|
a4e55d33c7 | ||
|
|
a6aaccb601 | ||
|
|
0189a7b7bd | ||
|
|
4ca9499c95 | ||
|
|
9182f20d32 | ||
|
|
7ff985c7d7 | ||
|
|
a1fade2462 | ||
|
|
a2a78795b9 |
@@ -2,6 +2,7 @@
|
||||
"extends": "eslint:recommended",
|
||||
"rules":
|
||||
{
|
||||
"no-console": 0,
|
||||
"indent": [2, 2,
|
||||
{
|
||||
"VariableDeclarator": 2
|
||||
@@ -13,7 +14,6 @@
|
||||
},
|
||||
"env":
|
||||
{
|
||||
"node": true,
|
||||
"commonjs": true
|
||||
"node": true
|
||||
}
|
||||
}
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
# Commons
|
||||
/node_modules
|
||||
*.log
|
||||
|
||||
# OS
|
||||
.DS_Store
|
||||
|
||||
5
.npmignore
Normal file
5
.npmignore
Normal file
@@ -0,0 +1,5 @@
|
||||
# Make NPM module leaner
|
||||
|
||||
/scripts
|
||||
.eslintrc
|
||||
.npmrc
|
||||
@@ -3,6 +3,12 @@ This plugin (based on [devgeeks/Canvas2ImagePlugin](http://github.com/devgeeks/C
|
||||
|
||||
The plugin is a kind of fork of the [solderzzc/Base64ImageSaverPlugin](https://github.com/solderzzc/Base64ImageSaverPlugin) but with a cleaner history (a.k.a: no tags from Canvas2ImagePlugin repo).
|
||||
|
||||
## Alert
|
||||
In order to be more consistent with the cordova naming convention, since version 2.0 the repository name and the cordova plugin id have changed to **cordova-base64-to-gallery** (issue #1).
|
||||
|
||||
Please uninstall the old version and reinstall the new one.
|
||||
|
||||
|
||||
## Usage
|
||||
Call the `cordova.base64ToGallery()` method using success and error callbacks and the id attribute or the element object of the canvas to save:
|
||||
|
||||
|
||||
39
package.json
39
package.json
@@ -1,34 +1,31 @@
|
||||
{
|
||||
"name": "cordova-base64-to-gallery",
|
||||
"version": "1.0.0",
|
||||
"description": "This plugin allows you to save base64 data as a png image into the device (iOS Photo Library, Android Gallery, WindowsPhone 8 Photo Album).",
|
||||
"version": "2.0.2",
|
||||
"description": "Cordova plugin to save base64 data as a png image into the device",
|
||||
"license": "MIT",
|
||||
"scripts":
|
||||
{
|
||||
"lint": "eslint www/ase64ToGallery.js",
|
||||
"scripts": {
|
||||
"update": "node ./scripts/update_version",
|
||||
"lint": "eslint www/base64ToGallery.js",
|
||||
"test": "npm run lint",
|
||||
"prepublish": "npm test"
|
||||
},
|
||||
"repository":
|
||||
{
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/Nexxa/base64ToGallery.git"
|
||||
"url": "git+https://github.com/Nexxa/cordova-base64-to-gallery.git"
|
||||
},
|
||||
"bugs":
|
||||
{
|
||||
"url": "https://github.com/Nexxa/base64ToGallery/issues"
|
||||
"bugs": {
|
||||
"url": "https://github.com/Nexxa/cordova-base64-to-gallery/issues"
|
||||
},
|
||||
"engines": [
|
||||
{
|
||||
"cordova": ">=3.0.0"
|
||||
},
|
||||
{
|
||||
"node": ">=0.12 <4.0"
|
||||
"node": ">=0.10"
|
||||
}
|
||||
],
|
||||
"cordova":
|
||||
{
|
||||
"id": "it.nexxa.base64ToGallery",
|
||||
"cordova": {
|
||||
"id": "cordova-base64-to-gallery",
|
||||
"platforms": [
|
||||
"ios",
|
||||
"android",
|
||||
@@ -40,13 +37,13 @@
|
||||
"base64",
|
||||
"save",
|
||||
"photo library",
|
||||
"gallery",
|
||||
"ecosystem:cordova",
|
||||
"cordova-ios",
|
||||
"cordova-android",
|
||||
"cordova-wp8"
|
||||
],
|
||||
"author":
|
||||
{
|
||||
"author": {
|
||||
"name": "StefanoMagrassi",
|
||||
"email": "stefano.magrassi@gmail.com",
|
||||
"url": "http://thinkwritedone.com"
|
||||
@@ -58,8 +55,8 @@
|
||||
"url": "http://www.tiegushi.com"
|
||||
}
|
||||
],
|
||||
"devDependencies":
|
||||
{
|
||||
"eslint": "^1.10.3"
|
||||
"devDependencies": {
|
||||
"eslint": "1.10.3",
|
||||
"nodemsg": "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
105
plugin.xml
105
plugin.xml
@@ -1,67 +1,66 @@
|
||||
<plugin id="it.nexxa.base64ToGallery" version="1.0.0" xmlns:android="http://schemas.android.com/apk/res/android" xmlns="http://www.phonegap.com/ns/plugins/1.0">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin xmlns:android="http://schemas.android.com/apk/res/android" xmlns="http://www.phonegap.com/ns/plugins/1.0" id="cordova-base64-to-gallery" version="2.0.2">
|
||||
|
||||
<engines>
|
||||
<engine name="cordova-ios" version="<3.8.0" />
|
||||
</engines>
|
||||
|
||||
<name>base64ToGallery</name>
|
||||
|
||||
<engines>
|
||||
<engine name="cordova" version=">=3.0.0" />
|
||||
</engines>
|
||||
<description>This plugin allows you to save base64 data as a png image into the device (iOS Photo Library, Android Gallery, WindowsPhone 8 Photo Album).</description>
|
||||
<author>Tommy-Carlos Williams - tommy@devgeeks.org</author>
|
||||
<author>Simba Zhang - solderzzc@gmail.com</author>
|
||||
<author>StefanoMagrassi - stefano.magrassi@gmail.com</author>
|
||||
<keywords>base64,png,save,canvas,image,photo library</keywords>
|
||||
|
||||
<description>This plugin allows you to save base64 data as a png image into the device (iOS Photo Library, Android Gallery, WindowsPhone 8 Photo Album).</description>
|
||||
<author>Tommy-Carlos Williams - tommy@devgeeks.org</author>
|
||||
<author>Simba Zhang - solderzzc@gmail.com</author>
|
||||
<author>StefanoMagrassi - stefano.magrassi@gmail.com</author>
|
||||
<keywords>base64,png,save,canvas,image,photo library</keywords>
|
||||
<license>MIT</license>
|
||||
|
||||
<license>MIT</license>
|
||||
<js-module name="base64ToGallery" src="www/base64ToGallery.js">
|
||||
<clobbers target="cordova.base64ToGallery"/>
|
||||
</js-module>
|
||||
|
||||
<js-module name="base64ToGallery" src="www/base64ToGallery.js">
|
||||
<clobbers target="cordova.base64ToGallery"/>
|
||||
</js-module>
|
||||
<!-- ios -->
|
||||
<platform name="ios">
|
||||
<source-file compiler-flags="-fno-objc-arc" src="src/ios/Base64ToGallery.m"/>
|
||||
|
||||
<!-- ios -->
|
||||
<platform name="ios">
|
||||
<config-file parent="/*" target="config.xml">
|
||||
<feature name="Base64ToGallery">
|
||||
<param name="ios-package" value="Base64ToGallery"/>
|
||||
<param name="onload" value="true"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
<config-file parent="/*" target="config.xml">
|
||||
<feature name="Base64ToGallery">
|
||||
<param name="ios-package" value="Base64ToGallery"/>
|
||||
<param name="onload" value="true"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
<header-file src="src/ios/Base64ToGallery.h"/>
|
||||
<header-file src="src/ios/Base64ToGallery.h"/>
|
||||
</platform>
|
||||
|
||||
<source-file compiler-flags="-fno-objc-arc" src="src/ios/Base64ToGallery.m"/>
|
||||
</platform>
|
||||
<!-- android -->
|
||||
<platform name="android">
|
||||
<source-file src="src/android/Base64ToGallery.java" target-dir="src/it/nexxa/Base64ToGallery"/>
|
||||
|
||||
<!-- android -->
|
||||
<platform name="android">
|
||||
<config-file parent="/*" target="AndroidManifest.xml">
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
</config-file>
|
||||
|
||||
<config-file parent="/*" target="AndroidManifest.xml">
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
</config-file>
|
||||
<config-file parent="/*" target="res/xml/config.xml">
|
||||
<feature name="Base64ToGallery">
|
||||
<param name="android-package" value="it.nexxa.base64ToGallery.Base64ToGallery"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
</platform>
|
||||
|
||||
<config-file parent="/*" target="res/xml/config.xml">
|
||||
<feature name="Base64ToGallery">
|
||||
<param name="android-package" value="it.nexxa.base64ToGallery.Base64ToGallery"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
<!-- wp8 -->
|
||||
<platform name="wp8">
|
||||
<source-file src="src/wp8/Base64ToGallery.cs"/>
|
||||
|
||||
<source-file src="src/android/Base64ToGallery.java" target-dir="src/it/nexxa/Base64ToGallery"/>
|
||||
<config-file parent="/*" target="config.xml">
|
||||
<feature name="Base64ToGallery">
|
||||
<param name="wp-package" value="Base64ToGallery"/>
|
||||
<param name="onload" value="true"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
</platform>
|
||||
|
||||
<!-- wp8 -->
|
||||
<platform name="wp8">
|
||||
<config-file parent="/*" target="config.xml">
|
||||
<feature name="Base64ToGallery">
|
||||
<param name="wp-package" value="Base64ToGallery"/>
|
||||
<param name="onload" value="true"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
<config-file parent="/Deployment/App/Capabilities" target="Properties/WMAppManifest.xml">
|
||||
<Capability Name="ID_CAP_MEDIALIB_PHOTO"/>
|
||||
</config-file>
|
||||
|
||||
<source-file src="src/wp8/Base64ToGallery.cs"/>
|
||||
</platform>
|
||||
</plugin>
|
||||
<config-file parent="/Deployment/App/Capabilities" target="Properties/WMAppManifest.xml">
|
||||
<Capability Name="ID_CAP_MEDIALIB_PHOTO"/>
|
||||
</config-file>
|
||||
</platform>
|
||||
</plugin>
|
||||
|
||||
29
scripts/update_version.js
Normal file
29
scripts/update_version.js
Normal file
@@ -0,0 +1,29 @@
|
||||
/*eslint-env node*/
|
||||
|
||||
// Modules
|
||||
var fs = require('fs');
|
||||
var logger = require('nodemsg');
|
||||
var pkg = require('../package.json');
|
||||
|
||||
// CONSTS
|
||||
var CONFIG_FILE = 'plugin.xml';
|
||||
var PLUGIN_ID = 'cordova-base64-to-gallery';
|
||||
var ERROR_MSG = 'No "version" attribute found - Please check '+ CONFIG_FILE +' ("version" tag must follow "id" tag)';
|
||||
var REGEXP = '(id="' + PLUGIN_ID + '" )(version="\\d+[.]\\d+[.]\\d+")';
|
||||
|
||||
// Logic
|
||||
var version = pkg.version;
|
||||
var regex = new RegExp(REGEXP);
|
||||
var config = fs.readFileSync(CONFIG_FILE, { encoding: 'utf8'});
|
||||
|
||||
// Exit if version tag not found
|
||||
if (!regex.test(config)) {
|
||||
logger.error(ERROR_MSG);
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Set version
|
||||
config = config.replace(regex, '$1version="' + version + '"');
|
||||
|
||||
fs.writeFileSync(CONFIG_FILE, config);
|
||||
@@ -53,9 +53,7 @@ public class Base64ToGallery extends CordovaPlugin {
|
||||
filePrefix = DEFAULT_FILE_PREFIX;
|
||||
}
|
||||
|
||||
// Create the bitmap from the base64 string
|
||||
Log.d("Base64ToGallery", base64);
|
||||
|
||||
// Create the bitmap from the base64 string
|
||||
byte[] decodedString = Base64.decode(base64, Base64.DEFAULT);
|
||||
Bitmap bmp = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
|
||||
|
||||
@@ -99,9 +97,6 @@ public class Base64ToGallery extends CordovaPlugin {
|
||||
+ c.get(Calendar.MINUTE)
|
||||
+ c.get(Calendar.SECOND);
|
||||
|
||||
|
||||
Log.i("Base64ToGallery", "Android version " + deviceVersion);
|
||||
|
||||
int check = deviceVersion.compareTo("2.3.3");
|
||||
|
||||
File folder;
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
// MIT Licensed
|
||||
//
|
||||
|
||||
|
||||
#import <Cordova/CDVPlugin.h>
|
||||
|
||||
@interface Base64ToGallery : CDVPlugin
|
||||
|
||||
@@ -25,26 +25,28 @@
|
||||
NSData* imageData = [NSData dataFromBase64String:[command.arguments objectAtIndex:0]];
|
||||
|
||||
UIImage* image = [[[UIImage alloc] initWithData:imageData] autorelease];
|
||||
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
|
||||
|
||||
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
|
||||
}
|
||||
|
||||
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
|
||||
{
|
||||
CDVPluginResult* result = nil;
|
||||
|
||||
// Was there an error?
|
||||
if (error != NULL)
|
||||
{
|
||||
// Show error message...
|
||||
NSLog(@"ERROR: %@",error);
|
||||
CDVPluginResult* result = [CDVPluginResult resultWithStatus: CDVCommandStatus_ERROR messageAsString:error.description];
|
||||
if (error != NULL) {
|
||||
NSLog(@"ERROR: %@", error);
|
||||
|
||||
result = [CDVPluginResult resultWithStatus: CDVCommandStatus_ERROR messageAsString:error.description];
|
||||
|
||||
[self.webView stringByEvaluatingJavaScriptFromString:[result toErrorCallbackString: self.callbackId]];
|
||||
}
|
||||
else // No errors
|
||||
{
|
||||
// Show message image successfully saved
|
||||
NSLog(@"IMAGE SAVED!");
|
||||
CDVPluginResult* result = [CDVPluginResult resultWithStatus: CDVCommandStatus_OK messageAsString:@"Image saved"];
|
||||
[self.webView stringByEvaluatingJavaScriptFromString:[result toSuccessCallbackString: self.callbackId]];
|
||||
|
||||
// No errors
|
||||
} else {
|
||||
|
||||
result = [CDVPluginResult resultWithStatus: CDVCommandStatus_OK];
|
||||
|
||||
[self.webView stringByEvaluatingJavaScriptFromString:[result toSuccessCallbackString: self.callbackId]];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,5 +56,4 @@
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -37,7 +37,7 @@ public class Base64ToGallery : BaseCommand
|
||||
|
||||
if (picture.Name.Contains(fileName))
|
||||
{
|
||||
DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Image saved: " + picture.Name));
|
||||
DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user