如何使用Cordova获取iOS用户设备名称?

我正在使用org.apache.cordova.device插件。 我看到device.name 已经被弃用了一段时间,支持device.model 。 在iPhone 5S上使用设备插件0.2.12和iOS 8.1时, device.name undefined

我仍然需要获取用户的设备名称,例如“Jerry的iPhone”,以便用户可以看到他们的设备正在使用我的应用程序。 cordova怎么做?

您最好的选择可能是修改设备插件(带来所有不良后果)。 我可以通过在./cordova/platforms/ios/[project name]/Plugins/org.apache.cordova.device/CDVDevice.m以下行添加到deviceProperties来获取设备名称:

 - (NSDictionary*)deviceProperties { UIDevice* device = [UIDevice currentDevice]; NSMutableDictionary* devProps = [NSMutableDictionary dictionaryWithCapacity:4]; [devProps setObject:[device name] forKey:@"name"]; // <------------- new line 

您还需要在./cordova/plugins/org.apache.cordova.device/www/device.js调整相应的Javascript对象:

  channel.onCordovaReady.subscribe(function() { me.getInfo(function(info) { me.name = info.name; // <---------- new line 

device.name可能已被弃用并从插件中删除,但从iOS SDK 8.1 文档开始 ,分配的name仍然是受支持的属性。

设备插件不支持该名称,但是有另一个插件可以:

https://github.com/becvert/cordova-plugin-device-name