事出有因

之所以想了解这个技术是因为今天看了场电影,用微票儿购买的《荒野猎人》的电影票,只为欣赏小李子能赢得奥斯卡的演技。可是“把玩”微票儿的时候,发现购买的电影票据右下角有一个iPhone里面的wallet标志按钮,原谅土包子的我之前并没有见过这个,也没注意过。但是今天恰巧看到了觉得甚是神奇,使用过Apple Pay,但没用过“凭证”,

今日一看,甚是炫酷,不愧是装逼圣器,于是萌生了了解这个技术并写到我的博客里的想法···

技术前景

如果说Wallet在之前不是很火的话,那我想说它马上要火,因为Apple Pay的火热很可能会为“凭证”造势,使用量会增高,不管其他用户怎么想,我觉得很好,我觉得可用。就像一个钱包里面放上会员卡、优惠券一样,真正使iPhone物尽其用。

不管用户量的多少,作为一名iOS开发人员,没有理由不学习这个技术,毕竟这是我们丰富自我的食粮。不吃饱饭怎么上班啊?所以赶紧学习吧!

Passbook

这里附上苹果官网上的文章《使用Passbook》给需要的人参考。

博客正文

这又是一篇比较老的博客了,因为Passbook是iOS6出现的时候出现的,所以时间有那么一丢丢长,资料有那么一丢丢的老,但是技术的核心不变,我也不废话,附上原文地址,希望能给需要帮助的同行一丢丢帮助。

今天只做摘抄,摘抄代码部分资料,需要详细博客的朋友劳驾转到原文地址仔细阅读。

Pass Kit编程:实例:MyPass实例设计与说明

下面我们通过一个实例(MyPass)介绍一下Pass Kit的编程过程,MyPass实例设计原型草图。MyPass启动的时候,首页是表视图画面,它查询本地设备上的Passbook中特定一些Pass,然后然后显示的表视图画面中。用户点击“+”按钮,如果登机牌Pass存在则替换,否则添加登机牌Pass到Passbook,登机牌Pass是从iosbook3.com服务器请求下载的。如果在表视图画面点击其中的单元格,则画面跳转到Pass的详细画面,在详细画面中可以点击导航栏右上角的“Remove”按钮把当前Pass从Passbook中删除。

1、创建App ID

任何一个iOS应用都需要创建App ID的,在Description项目中输入“Pass Kit Dev”,Bundle Seed ID (App ID Prefix)项目中选择“Use Team ID”。 Bundle Identifier (App ID Suffix)项目中输入“com.51work6.MyPass”。

创建成功获得App ID页面,在App ID列表中会发现我们刚刚创建的Pass Kit Dev

2、配置Pass可用

默认情况下创建的应用是不可以访问Passbook的,我们需要点击Configure超链接进入应用配置页面,勾选“Enable for Passes”开启Pass可用。

配置完成点击右下角的“Done”按钮,保存配置并回到App ID的列表页面,这时候再回来看一下我们刚刚配置的应用,它的Pass状态变为了绿色可用状态了。

3、创建配置概要文件

为了能够编写在设备上应用,我们还需要创建配置概要文件。创建成功之后下载配置概要文件到本地。

4、创建Pass类型ID

创建Pass类型ID也是重要的一个环节,我们需要设置的Pass类型ID是“pass.com.51work6.boarding-pass”。

5、配置Xcode工程代码签名

前面的工作完成之后,我们需要创建和配置Xcode工程,创建工程名“MyPass”应用,然后进行配置Xcode工程代码签名。这个签名需要使用第3个步骤创建配置概要文件。

选择TAGETS→MyPass→Code Signing Identity,在后面选择Pass Kit Dev Profile。

设置完成之后可以开始编码工作了。

6、配置Xcode工程配置授权信息

配置授权信息与iCloud应用类似,选择TAGETS→MyPass→Summary→Entitlements,我们可以在这里配置授权信息。

授权信息项目说明如下:

Entitlements :勾选Use Entitlements File,指定一个授权文件,这个文件没有会在你的工程目录中自己创建,它记录下面的授权详细配置信息的;

Pass:是选择Pass类型标识,先选择Use selected pass type identifier,然后勾选pass.com.51work6.boarding-pass;

到此为止,编程的前期准备过程就完成了,下面我们介绍实例的编写过程。

访问Passbook

对于Pass的操作是通过PKPassLibrary类完成的,PKPassLibrary类不是单例设计的,获得实例对象时候使用下面代码:

PKPassLibrary* passLib = [[PKPassLibrary alloc] init];

在PKPassLibrary类中与访问Passbook相关的方法有:

passes 获得Passbook中全部授权文件指定的Pass,我们在授权文件中指定的Pass类型ID是pass.com.51work6.boarding-pass,因此该方法取得的是Pass类型ID为pass.com.51work6.boarding-pass的所有Pass。

passWithPassTypeIdentifier:serialNumber: 通过指定的Pass类型ID和序列号获得Pass对象。

下面我们看看相关的程序代码,

ViewController.h

#import <UIKit/UIKit.h>  #import ”ASIHTTPRequest.h”  #import ”PassKit/PassKit.h”  #import ”DetailViewController.h”  #define SerialNumber @”gT6zrHkaW”  @interface ViewController :  UITableViewController <PKAddPassesViewControllerDelegate>  @property (strong, nonatomic) NSArray* passes;  - (IBAction)add:(id)sender;  @end

ViewController.m

- (void)viewDidLoad  {  [super viewDidLoad];  //判断Passbook是否可用  if (![PKPassLibrary isPassLibraryAvailable])  {  NSLog(@”Passbook不可用。”);  } else {  [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(handleLibraryChange:)  name:PKPassLibraryDidChangeNotification object:nil];  }  }  -(void)viewWillAppear:(BOOL)animated  {  [super viewWillAppear:YES];  //刷新画面  [self handleLibraryChange:nil];  }  #pragma mark - 处理Passbook变化通知  -(void)handleLibraryChange:(NSNotification*) not ④  {  PKPassLibrary* passLib = [[PKPassLibrary alloc] init];  //排序  NSSortDescriptor *byName = [NSSortDescriptor  sortDescriptorWithKey:@"localizedName" ascending:YES];  _passes = [[passLib passes] sortedArrayUsingDescriptors:@[byName]];  [self.tableView reloadData];  }  - (void)didReceiveMemoryWarning  {  [super didReceiveMemoryWarning];  [[NSNotificationCenter defaultCenter] removeAllObjects];  }

发布Pass

Pass签名和压缩成功之后,如何把pkpass文件发布给用户使用呢?对于提供给普通用户pkpass文件,我们有3种发布方式:Email发布、Web网站发布和应用程序内发布。

Email发布

这种发布方式是pkpass文件作为Email附件发送给用户,用户最好在他的iPhone或iPod touch设备上打开邮箱读取Email。Email附件中的Pass,附件中的图标是在Pass中的logo.png文件。

当点击这个附件“Store Card”后页面会跳转,点击导航栏右边的“Add”按钮,会将这个Pass添加到Passbook中。

如果用户没有在它的iPhone或iPod touch中接收Email,可以在Mac OS X 10.8.2以上系统中,使用邮件应用程序接收这个邮件。

点击邮件中的“查看凭证…”按钮,会弹出添加Pass的对话框。

如果这个Pass没有添加到Passbook,右下角的按钮为“添加到Passbook”,如果已经添加到Passbook则这个按钮是“完成”或“更新”。

Passbook就到这里了。

下期见~

iOS 如何开启Passbook相关推荐

  1. iOS客户端开启FTP,其他设备访问手机本地文件操作实现

    iOS客户端开启FTP,其他设备访问手机本地文件操作实现 因为项目需要,需要在手机端搭建FTP服务,让其他设备来访问手机某个路径文件夹下边的文件,实现下载功能. 主要实现借助第三方库XMFTPServ ...

  2. 手游神武2最新服务器,神武2手游新服开启公告 安卓IOS新服开启

    神武2手游新服开启公告,安卓IOS新服开启.神武手游安卓和IOS客户端又将开启新的服务器了,新的服务器将在3月11日开启.每当新服开启的时候肯定都会有一系列的活动登场,下面就让我们一起来看一看新服活动 ...

  3. iOS进阶课程-Passbook编程-关东升-专题视频课程

    iOS进阶课程-Passbook编程-1999人已学习 课程介绍         介绍了Passbook服务的重要性,Passbook服务的流程.还介绍了Pass风格.Pass内部结构.Pass创建. ...

  4. ios safari 开启无痕浏览(隐私模式)报QuotaExceededError: DOM Exception 22异常解决办法...

    // 检测safari是否开启无痕浏览 (function () {var testKey = 'test'var storage = window.sessionStoragetry {storag ...

  5. 【手把手教学】开启iOS app调试模式

    目标 本文会阐述如何通过使用开发者证书重签的方式实现对iOS app开启调试模式 调试模式开启后可以实现以下功能: 1. 重签后的ipa可以安装在未越狱的iOS设备上 2. 在未越狱的iOS 8.x设 ...

  6. Passbook(Wallet)学习笔记

    概述 2012年WWDC上iOS6发布了一个全新的应用–Passbook,管理电子票券,包括登机牌,电影票,优惠卡,购物卡等.2015年WWDC大会发布的iOS9将Passbook改名为Wallet, ...

  7. ios开发 多人语音聊天_微信“暗黑模式”正式上线!语音界面大改,新增贴心“群工具”...

    微必知科技资讯(winbz.com):3月9日,微信团队对外预热:"为了优化用户体验,微信与苹果达成合作,共同探索微信在iOS系统的暗黑模式体验,目前该功能已完成开发,将有望在下一个新版本中 ...

  8. 急速收藏:4套iOS SDK的H5打通方案

    在介绍 iOS SDK 的 H5 打通方案之前,我们先了解一下什么是 App 与 H5 打通. 所谓 "打通",是指 H5 集成 JavaScript 数据采集 SDK 后,H5 ...

  9. iOS Hacker LLDB 和 debugserver 实例调试

    LLDB 和 debugserver 实例调试 GDB 也可以调试 iOS 程序,但是效果不如苹果的 LLDB, LLDB 可以在程序运行的时候输入命令下断点,而 GDB 却不行. 一.LLDB 和 ...

最新文章

  1. Python培训教程:什么是Python全局解释器锁(GIL)?
  2. SpringBoot微信公众号授权访问认证文件部署
  3. html中怎么使用数字轮播,【求助】页面上显示几个数字,打开html的时候希望能滚动起来...
  4. 孕妇可以使用计算机,【电脑对孕妇有影响吗】电脑对孕妇的危害,孕妇能玩电脑吗 - 妈妈网百科...
  5. C++实现黑客帝国流星雨效果
  6. centos7搭建FTP服务器
  7. springboot配置shiro多项目实现session共享的详细步骤
  8. 数据结构(五)堆排序
  9. BZOJ1861: [Zjoi2006]Book 书架
  10. 千里之行始于足下---在“从普通走向优秀”的路上
  11. mysql 声明时间变量_MySQL如何声明一个datetime变量?
  12. 拓端tecdat|R语言解决最优化运营研究问题-线性优化(LP)问题
  13. java代码转python代码(需要手动调整)
  14. java ssh架构_JAVA SSH 框架介绍(转)
  15. 微软服务器系统补丁kb2919355,Windows 8.1补丁KB2919355无法安装的解决方法
  16. Mysql(免安装版)安装、配置与卸载
  17. 基于Python的“书怡”在线书店系统的设计与实现毕业设计源码082332
  18. 过度理想化与造梦周期
  19. Adobe设计师证书
  20. 西安理工大学计算机科学与工程学院官网,罗靖-西安理工大学计算机科学与工程学院...

热门文章

  1. php简单的日历代码,php日历制作代码分享
  2. NeurIPS 2020 | 数据类别不平衡/长尾分布?不妨利用半监督或自监督学习
  3. python爬虫框架——scrapy(1)scrapy爬虫框架介绍
  4. Matlab车牌识别停车场车辆进出管理系统
  5. nerf-pytorch3D 代码详细流程 debug
  6. led可见光通信直方图均衡matlab,基于高通滤波和直方图均衡的钢轨裂纹红外图像增强技术...
  7. JAVA入门算法题(六)
  8. VMWare Workstation Pro 15安装黑苹果
  9. Redis命令详解:Server
  10. 杨幂阮经天《扶摇》首曝定妆照 陈伟霆马思纯合作《橙红年代》