专栏首页一“技”之长iOS开发之DeviceCheck框架的应用

iOS开发之DeviceCheck框架的应用

iOS开发之DeviceCheck框架的应用

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

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

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

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

@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({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Bootstrap响应式前端框架笔记一——强大的栅格布局

        Bootstrap是一款HTML,Css和JavaScript开发框架,其也支持开发者进行自定义构建,开发者也可以只打包自己需要的功能模块使用。Boot...

    珲少
  • macOS开发之NSTableView的应用详解

        和iOS开发中的UITableView有很大差别,NSTableView并非是一个可滚动的列表视图,其是一个不可滚动、支持多列多行的原始列表视图。若要使...

    珲少
  • iOS开发之EventKitUI框架的应用

          前面博客,有介绍EventKit这个框架的使用,使用EventKit可以与系统的日历和提醒应用进行交互,读写用户的日程事件。EventKitUI,顾...

    珲少
  • 个性化资讯推荐算法 ( 下 )

    头条为何能取得成功?很多人会说是头条的个性化推荐技术做得好,个人认为其实不尽然。本文罗列了相关的个性化推荐技术,特别是资讯推荐常用的算法,带大家从“内行”的角度...

    serena
  • 16位汇编语言第二讲系统调用原理,以及各个寄存器详解

       16位汇编语言第二讲系统调用原理,以及各个寄存器详解 昨天已将简单的写了一下汇编代码,并且执行了第一个显示到屏幕的helloworld 问题?   hel...

    IBinary
  • WordPress版微信小程序3.5版发布

    最近花时间对WordPress版微信小程序做了一些完善和调整,修复不少程序的问题。一个程序的完善是持续和渐进的,没有最好,只有更完善。虽然会采纳一些用户的建议和...

    Jianbo
  • 毕业找工作?数据告诉你今年就业有哪些“风口”

    又到了六月毕业季,一大波毕业生即将告别自己的学生时代,走出校门步入社会,完成从学生到职员的角色转换。毕业找工作是横在很多大学生面前的一道坎,今年高校毕业生人数再...

    钱塘数据
  • Kubernetes Cluster API With vSphere入门实践

    如果你跟我一样,创建Kubernetes集群已经变得如此频繁的操作,希望有个Kubernetes As a Service服务,方便自己也方便用户。那么用Kub...

    nevermosby
  • 哪些行业形势好?大数据帮你预测今年就业“风口”

    2018年,哪些行业最好找工作?如何最准确把握就业的风口?近日,中国人民大学中国就业研究所联合智联招聘,共同发布了2017年第四季度《中国就业市场景气报告》。从...

    华章科技
  • linux vim 编辑器之多文件多窗口编辑

    有时可能需要在多个文件之间来回操作,但是关闭一个文件再打开另外一个文件这样来回操作未免显得太笨拙了。还好linux提供了多文件多窗口的模式。 同时打开多个文...

    我是李超人

扫码关注云+社区

领取腾讯云代金券