michael@0: /* michael@0: Licensed to the Apache Software Foundation (ASF) under one michael@0: or more contributor license agreements. See the NOTICE file michael@0: distributed with this work for additional information michael@0: regarding copyright ownership. The ASF licenses this file michael@0: to you under the Apache License, Version 2.0 (the michael@0: "License"); you may not use this file except in compliance michael@0: with the License. You may obtain a copy of the License at michael@0: michael@0: http://www.apache.org/licenses/LICENSE-2.0 michael@0: michael@0: Unless required by applicable law or agreed to in writing, michael@0: software distributed under the License is distributed on an michael@0: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY michael@0: KIND, either express or implied. See the License for the michael@0: specific language governing permissions and limitations michael@0: under the License. michael@0: */ michael@0: michael@0: #include michael@0: #include michael@0: michael@0: #import michael@0: #import "CDVDevice.h" michael@0: michael@0: @implementation UIDevice (ModelVersion) michael@0: michael@0: - (NSString*)modelVersion michael@0: { michael@0: size_t size; michael@0: michael@0: sysctlbyname("hw.machine", NULL, &size, NULL, 0); michael@0: char* machine = malloc(size); michael@0: sysctlbyname("hw.machine", machine, &size, NULL, 0); michael@0: NSString* platform = [NSString stringWithUTF8String:machine]; michael@0: free(machine); michael@0: michael@0: return platform; michael@0: } michael@0: michael@0: @end michael@0: michael@0: @interface CDVDevice () {} michael@0: @end michael@0: michael@0: @implementation CDVDevice michael@0: michael@0: - (void)getDeviceInfo:(CDVInvokedUrlCommand*)command michael@0: { michael@0: NSDictionary* deviceProperties = [self deviceProperties]; michael@0: CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:deviceProperties]; michael@0: michael@0: [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; michael@0: } michael@0: michael@0: - (NSDictionary*)deviceProperties michael@0: { michael@0: UIDevice* device = [UIDevice currentDevice]; michael@0: NSMutableDictionary* devProps = [NSMutableDictionary dictionaryWithCapacity:4]; michael@0: michael@0: [devProps setObject:[device modelVersion] forKey:@"model"]; michael@0: [devProps setObject:@"iOS" forKey:@"platform"]; michael@0: [devProps setObject:[device systemVersion] forKey:@"version"]; michael@0: [devProps setObject:[device uniqueAppInstanceIdentifier] forKey:@"uuid"]; michael@0: [devProps setObject:[[self class] cordovaVersion] forKey:@"cordova"]; michael@0: michael@0: NSDictionary* devReturn = [NSDictionary dictionaryWithDictionary:devProps]; michael@0: return devReturn; michael@0: } michael@0: michael@0: + (NSString*)cordovaVersion michael@0: { michael@0: return CDV_VERSION; michael@0: } michael@0: michael@0: @end