t***@qq.com
t***@qq.com
  • 发布:2020-09-25 18:29
  • 更新:2020-09-25 22:07
  • 阅读:1561

【报Bug】iOS 14无法获取idfa

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 2.8.11

手机系统: iOS

手机系统版本号: iOS 13.4

手机厂商: 苹果

手机机型: iPhone X

打包方式: 云端

App下载地址或H5⽹址: https://apps.apple.com/cn/app/id1517002618

示例代码:

var idfa = '';
if (plus.os.name === 'iOS') {
var manager = plus.ios.invoke('ASIdentifierManager', 'sharedManager');
var enable = plus.ios.invoke(manager, 'isAdvertisingTrackingEnabled');
if (enable) {
var identifier = plus.ios.invoke(manager, 'advertisingIdentifier');
idfa = plus.ios.invoke(identifier, 'UUIDString');
plus.ios.deleteObject(identifier);
}
plus.ios.deleteObject(manager);
}
console.info('idfa', idfa);

操作步骤:

APP动即获取idfa

预期结果:

可以获取idfa

实际结果:

获取到的idfa为空

bug描述:

iOS 14获取到的idfa为空,已确认允许追踪广告,且iOS 13.x没问题。

2020-09-25 18:29 负责人:无 分享
已邀请:
iOS_DJX

iOS_DJX

目前请先使用老的invoke方式 调用

   var ASIdentifierManager = plus.ios.importClass('ASIdentifierManager');    
    var sharedManager = ASIdentifierManager.sharedManager();    
    var IDFA = sharedManager.advertisingIdentifier().UUIDString();    
    console.log('IDFA:'+IDFA);
  • t***@qq.com (作者)

    感谢提供解决思路

    2020-09-25 22:06

  • t***@qq.com (作者)

    但是你的这段代码是拿不到idfa

    2020-09-25 22:06

t***@qq.com

t***@qq.com (作者)

用以下代码获取idfa了:

var NSUUID = plus.ios.importClass('NSUUID');  
var UIDevice = plus.ios.importClass("UIDevice");  
var currentDevice = UIDevice.currentDevice()  
var identifierForVendor = currentDevice.identifierForVendor().UUIDString();  
var ASIdentifierManager = plus.ios.importClass("ASIdentifierManager");  
var sharedManager = ASIdentifierManager.sharedManager();  
var advertisingIdentifier = sharedManager.advertisingIdentifier();  
var idfa = plus.ios.invoke(advertisingIdentifier,"UUIDString");  

该问题目前已经被锁定, 无法添加新回复