Touchgui/plugins/org.apache.cordova.device/src/ios/CDVDevice.m

Thu, 04 Jun 2015 14:50:33 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Jun 2015 14:50:33 +0200
changeset 0
e8ccd40d0ef6
permissions
-rw-r--r--

Genesis of lecture sources for Droidcon Berlin 2015 in Postbahnhof.

michael@0 1 /*
michael@0 2 Licensed to the Apache Software Foundation (ASF) under one
michael@0 3 or more contributor license agreements. See the NOTICE file
michael@0 4 distributed with this work for additional information
michael@0 5 regarding copyright ownership. The ASF licenses this file
michael@0 6 to you under the Apache License, Version 2.0 (the
michael@0 7 "License"); you may not use this file except in compliance
michael@0 8 with the License. You may obtain a copy of the License at
michael@0 9
michael@0 10 http://www.apache.org/licenses/LICENSE-2.0
michael@0 11
michael@0 12 Unless required by applicable law or agreed to in writing,
michael@0 13 software distributed under the License is distributed on an
michael@0 14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
michael@0 15 KIND, either express or implied. See the License for the
michael@0 16 specific language governing permissions and limitations
michael@0 17 under the License.
michael@0 18 */
michael@0 19
michael@0 20 #include <sys/types.h>
michael@0 21 #include <sys/sysctl.h>
michael@0 22
michael@0 23 #import <Cordova/CDV.h>
michael@0 24 #import "CDVDevice.h"
michael@0 25
michael@0 26 @implementation UIDevice (ModelVersion)
michael@0 27
michael@0 28 - (NSString*)modelVersion
michael@0 29 {
michael@0 30 size_t size;
michael@0 31
michael@0 32 sysctlbyname("hw.machine", NULL, &size, NULL, 0);
michael@0 33 char* machine = malloc(size);
michael@0 34 sysctlbyname("hw.machine", machine, &size, NULL, 0);
michael@0 35 NSString* platform = [NSString stringWithUTF8String:machine];
michael@0 36 free(machine);
michael@0 37
michael@0 38 return platform;
michael@0 39 }
michael@0 40
michael@0 41 @end
michael@0 42
michael@0 43 @interface CDVDevice () {}
michael@0 44 @end
michael@0 45
michael@0 46 @implementation CDVDevice
michael@0 47
michael@0 48 - (void)getDeviceInfo:(CDVInvokedUrlCommand*)command
michael@0 49 {
michael@0 50 NSDictionary* deviceProperties = [self deviceProperties];
michael@0 51 CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:deviceProperties];
michael@0 52
michael@0 53 [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
michael@0 54 }
michael@0 55
michael@0 56 - (NSDictionary*)deviceProperties
michael@0 57 {
michael@0 58 UIDevice* device = [UIDevice currentDevice];
michael@0 59 NSMutableDictionary* devProps = [NSMutableDictionary dictionaryWithCapacity:4];
michael@0 60
michael@0 61 [devProps setObject:[device modelVersion] forKey:@"model"];
michael@0 62 [devProps setObject:@"iOS" forKey:@"platform"];
michael@0 63 [devProps setObject:[device systemVersion] forKey:@"version"];
michael@0 64 [devProps setObject:[device uniqueAppInstanceIdentifier] forKey:@"uuid"];
michael@0 65 [devProps setObject:[[self class] cordovaVersion] forKey:@"cordova"];
michael@0 66
michael@0 67 NSDictionary* devReturn = [NSDictionary dictionaryWithDictionary:devProps];
michael@0 68 return devReturn;
michael@0 69 }
michael@0 70
michael@0 71 + (NSString*)cordovaVersion
michael@0 72 {
michael@0 73 return CDV_VERSION;
michael@0 74 }
michael@0 75
michael@0 76 @end

mercurial