Cordova设备插件不允许我访问“设备”属性

时间:2014-02-03 15:06:50

标签: javascript ios cordova

我安装了device.uuid插件后,我的cordova应用程序使用device,我仍然无法使用该属性,而且我的应用程序在我使用device.uuid的行上挂起。

2 个答案:

答案 0 :(得分:2)

从iOS7开始,您无法再使用device.uuid Apple无法跟踪设备。您必须使用广告ID,供应商ID或创建自己的唯一ID。

只需在PhoneGap

的开发者网站上添加此内容即可
  

iOS的uuid并非一个设备唯一,但是每个都是唯一的   每次安装应用程序如果您删除应用程序,这将更改   重新安装,也可能在升级iOS版本时,或者   甚至可以升级每个版本的应用程序(正如我们在iOS 5.1中看到的那样)。不是   可靠的价值。

看起来PhoneGap / Cordova正在使用identifierForVendor,kan有时会返回nil,你必须等待一段时间才能再次调用它。显然这在cordova中没有正确实现,导致你的应用程序挂起。

答案 1 :(得分:1)

在iOS 7上苹果删除了uniqueIdentifierdevice.uuid是特定于手机屏幕的,并且内部未使用uniqueIdentifier,因此您仍然可以使用它。

要在phonegap 3.X.X上使用device.uuid,您必须先添加设备插件,如下所示:

cordova plugin add org.apache.cordova.device

它有效,因为我刚刚测试过它(在cordova 3.5.0上)。如果您安装了该插件并且它正在挂起您的应用程序,那么您的手机版本版本可能存在一些错误,或者该插件未正确安装。

device.uuid的问题在于,它不是真正的设备uuid,来自phonegap doc

  

iOS Quirk

     

iOS上的uuid并非设备独有,而是因各设备而异   应用程序,用于每个安装。如果你删除和它会改变   重新安装应用程序,也可能在升级iOS时,甚至是   每个版本升级应用程序(在iOS 5.1中显而易见)。 uuid不是   可靠的价值。

device.uuid也没有使用identifierForVendor,它只是设备上保留的随机标识符,但是如果你想获得真实的identifierForVendor我已经创建了一个插件得到它。

https://github.com/jcesarmobile/IDFVPlugin