mirror of
https://github.com/purplecabbage/phonegap-plugins.git
synced 2026-01-13 16:38:08 -05:00
69 lines
2.6 KiB
Objective-C
69 lines
2.6 KiB
Objective-C
//
|
|
// UniqueIdentifier.m
|
|
// UniqueIdentifierPlugin
|
|
//
|
|
// Created by Andrew Thorp on 4/13/12
|
|
//
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE ANDREW THORP "AS IS" AND ANY EXPRESS OR
|
|
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
// EVENT SHALL ANDREW TRICE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
|
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
//
|
|
|
|
#import "UniqueIdentifier.h"
|
|
#define UUID_USER_DEFAULTS_KEY @"UUID"
|
|
|
|
@implementation UniqueIdentifier
|
|
|
|
@synthesize callbackID;
|
|
|
|
NSString* UNIQUE_IDENTIFIER_OK = @"OK";
|
|
NSString* UNIQUE_IDENTIFIER_ERROR = @"ERROR";
|
|
|
|
- (void) generateUUID:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
|
|
{
|
|
self.callbackID = [arguments pop];
|
|
|
|
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
|
if ([defaults stringForKey:UUID_USER_DEFAULTS_KEY] == nil) {
|
|
uuid = CFUUIDCreate(NULL);
|
|
if (uuid) {
|
|
uuidString = (NSString *)CFUUIDCreateString(NULL, uuid);
|
|
CFRelease(uuid);
|
|
}
|
|
|
|
[defaults setObject:uuidString forKey:UUID_USER_DEFAULTS_KEY];
|
|
[defaults synchronize];
|
|
}
|
|
|
|
NSString *uniqueIdentifier = [defaults stringForKey:UUID_USER_DEFAULTS_KEY];
|
|
|
|
CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: uniqueIdentifier];
|
|
[self writeJavascript: [pluginResult toSuccessCallbackString:self.callbackID]];
|
|
}
|
|
|
|
- (void) getUUID:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
|
|
{
|
|
self.callbackID = [arguments pop];
|
|
CDVPluginResult* pluginResult;
|
|
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
|
|
|
if ([defaults stringForKey:UUID_USER_DEFAULTS_KEY] == nil){
|
|
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString: UNIQUE_IDENTIFIER_ERROR];
|
|
[self writeJavascript: [pluginResult toErrorCallbackString:self.callbackID]];
|
|
} else {
|
|
NSString *uniqueIdentifier = [defaults stringForKey:UUID_USER_DEFAULTS_KEY];
|
|
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: uniqueIdentifier];
|
|
[self writeJavascript: [pluginResult toSuccessCallbackString:self.callbackID]];
|
|
}
|
|
}
|
|
|
|
@end
|