前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发之DeviceCheck框架的应用

iOS开发之DeviceCheck框架的应用

作者头像
珲少
发布2019-06-25 10:14:56
1.6K0
发布2019-06-25 10:14:56
举报
文章被收录于专栏:一“技”之长一“技”之长

iOS开发之DeviceCheck框架的应用

      DeviceCheck框架是iOS 11后提供的一个记录用户设备的工具框架。

在实际应用中,经常会遇到需要识别用户设备的需求,例如某些免费试用的应用程序,会根据设备判断用户是否已经试用过。Apple基于保护用户隐私的原则,开发者不能直接获取用户设备的相关标识信息,iOS 11后,Apple提供了DeviceCheck框架用来提供设备检查功能。

    DeviceCheck非常简单,大部分设备检查的逻辑要交给服务端调用Apple提供的接口来实现。

    DeviceCheck框架中只提供了一个类:DCDevice。其中定义如下:

代码语言:javascript
复制
@interface DCDevice : NSObject
// 类属性 获取实例对象
@property (class, readonly) DCDevice *currentDevice;
// 检查框架是否可用
@property (getter=isSupported, readonly) BOOL supported;
// 请求Token
- (void)generateTokenWithCompletionHandler:(void(^)(NSData * _Nullable token, NSError * _Nullable error))completion;
@end

DeviceCheck框架的核心在于获取设备的Token数据,拿到Token数据后可以仿照服务端发送推送的相关流程进行用户设备检查信息的读或写。详细文档地址如下:

https://developer.apple.com/documentation/devicecheck/accessing_and_modifying_per-device_data

    使用token进行设备检查时需要发送Query请求,参数如下:

在Apple返回的数据中会包含两个二进制的位和一个时间戳:

可以发现,其实Apple提供给开发者标记用户设备的能力十分有限,满打满算,开发者只能对用户设备标记4种状态。通过两个布尔位,用来获取当前设备是否参加了活动或者是否已经使用过试用资格等等。开发者也可以对这两个布尔值进行修改,上传请求的参数如下:

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iOS开发之DeviceCheck框架的应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档