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

Posted

技术标签:

【中文标题】如何使用 Cordova 获取 iOS 用户设置的设备名称?【英文标题】:How to get iOS user-set device name with Cordova? 【发布时间】:2014-10-26 14:19:15 【问题描述】:

我正在使用org.apache.cordova.device 插件。我看到device.namehas been deprecated 有一段时间支持device.model。在 iPhone 5S 上使用设备插件 0.2.12 和 ios 8.1 时,device.nameundefined

我仍然需要获取用户的设备名称,例如“Jerry 的 iPhone”,以便用户可以看到他们的哪些设备正在使用我的应用。如何用 Cordova 做到这一点?

【问题讨论】:

你能做到吗? 【参考方案1】:

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

- (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 可能已被弃用并从插件中删除,但分配的 name 仍然是 iOS SDK 8.1 documentation 的受支持属性。

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于如何使用 Cordova 获取 iOS 用户设置的设备名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何控制/强制 iOS 系统音量 [cordova]

如何在 IOS/SWIFT/OBJ-C/CORDOVa 上获取手指 ID(哪个手指用于触摸 ID)或唯一触摸 ID

如何在 Cordova 或 Hybrid 项目中获取用户身份?

推送到 iOS 时,使用 Cordova 和 Phonegap Push Plugin 在应用服务器上获取 invalidRegistration

如何获取对我的 Cordova iOS 插件实例的引用?

如何使用 Cordova 向 iOS 上的 Facebook 好友发送邀请?