iOS NFC功能开发

一、NDEF格式的

使用 NFCNDEFReaderSession。Delegate为:NFCNDEFReaderSessionDelegate

1、初始化对象

@property(strong,nonatomic)NFCNDEFReaderSession *session;

@property(strong,nonatomic)id<NFCNDEFTag> cuurentTag;

self.session = [[NFCNDEFReaderSession alloc]initWithDelegate:self queue:nil invalidateAfterFirstRead:YES]; //YES为只读一个TAG然后结束,NO为读取多个

self.session.alertMessage = @"读取卡片,请将卡片靠近手机";

[self.session beginSession]; //开始识别 弹出识别提示框

代理方法

-(void)readerSession:(NFCNDEFReaderSession *)session didDetectTags:(NSArray<__kindof id<NFCNDEFTag>> *)tags API_AVAILABLE(ios(13.0)){

  self.cuurentTag = [tags firstObject];

}

识别到卡片后会回调该方法,在该方法中可获取到tag。

2、读取卡片内容:获取到卡ID均为空,获取卡ID需要下面第二种方法。

2.1 需要先建立连接

[_session connectToTag:self.cuurentTag completionHandler:^(NSError * _Nullable error) { }];

2.2连接成功之后调用方法,可以获取到卡片的内容

[tag readNDEFWithCompletionHandler:^(NFCNDEFMessage *ndefMessage, NSError *error) { }];

3、写入NDEF内容

3.1 需要先建立连接

[_session connectToTag:self.cuurentTag completionHandler:^(NSError * _Nullable error) { }];

3.2连接成功之后调用方法获取卡片状态:判断是否可以写入

[self.cuurentTag queryNDEFStatusWithCompletionHandler:^(NFCNDEFStatus status, NSUInteger capacity, NSError * _Nullable error) {}];

状态 status == NFCNDEFStatusReadWrite 则可以写入。

3.3 写入

[self.cuurentTag writeNDEF:myMessage completionHandler:^(NSError * _Nullable error) {}];

二、iOS13新支持的类型:NFCPollingISO14443  NFCPollingISO15693  NFCPollingISO15693

使用NFCTagReaderSession。Delegate为:NFCTagReaderSessionDelegate

1.初始化对象

self.session = [[NFCTagReaderSession alloc]

                    initWithPollingOption:(NFCPollingISO14443 | NFCPollingISO15693 | NFCPollingISO15693) delegate:self queue:dispatch_get_main_queue()];

self.session.alertMessage = @"读取卡片,请将卡片靠近手机";

[self.session beginSession]; //开始识别 弹出识别提示框

代理方法

-(void)tagReaderSession:(NFCTagReaderSession *)session  didDetectTags:(NSArray<__kindof id<NFCTag>> *)tags{

  self.cuurentTag = [tags firstObject];

}

2、读取id(判断卡类型,以下以其中一种为例),内容获取方法同上

if (self.currentTag.type == NFCTagTypeMiFare) {

        id<NFCMiFareTag> mifareTag = [self.currentTag asNFCMiFareTag];

    NSData *data = mifareTag.identifier

}

3.写入方法同上使用的tag需要为具体类型的tag,如:NFCMiFareTag

[mifareTag writeNDEF:ndefMsg completionHandler:^(NSError * error) { }];

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金
一,肖一码′期期准 乐陵市| 延吉市| 石台县| 太和县| 蒙山县| 西青区| 九台市| 孝昌县| 云霄县| 炎陵县| 来安县| 江津市| 武穴市| 育儿| 宜君县| 江阴市| 磴口县| 永定县| 安岳县| 九寨沟县| 于田县| 古交市| 谢通门县| 肃南| 海口市| 翁源县| 伊宁县| 菏泽市| 彭州市| 右玉县| 长宁区| 镇平县| 宁明县| 湖南省| 南昌市| 蒲江县| 大足县| 阳高县| 桂平市| 福州市| 米脂县| 湘西| 盈江县| 文化| 甘德县| 平利县| 肃宁县| 化隆| 股票| 玉山县| 绥中县| 台北市| 竹溪县| 大兴区| 于田县| 肇州县| 万年县| 榕江县| 横山县| 牟定县| 裕民县| 彭阳县| 雷山县| 遵义县| 东乡县| 武乡县| 深水埗区| 塘沽区| 郁南县| 榆树市| 濉溪县| 交口县| 额敏县| SHOW| 鄂州市| 嘉禾县| 浮梁县| 南通市| 甘南县| 南岸区| 祁门县| 西畴县| 天津市| 获嘉县| 凤庆县| 略阳县| 澜沧| 叙永县| 渑池县| 宁化县| 三门县| 孙吴县| 遵化市| 万载县| 太保市| 潮州市| 肃南| 桐梓县| 玉屏| 隆昌县| 定结县| 永仁县| 北安市| 金湖县| 兴和县| 玉龙| 得荣县| 建宁县| 凤城市| 酉阳| 四子王旗| 井陉县| 高安市| 麟游县| 岳普湖县| 思茅市| 陵川县| 南城县| 东明县| 敦化市| 兴国县| 呼和浩特市| 岱山县| 凤翔县| 潜江市| 达尔| 宁陕县| 贵德县| 黔西| 亚东县| 红安县| 怀集县| 崇左市| 潜江市| 瑞金市| 望都县| 桃园县| 郯城县| 衡南县| 西藏| 禄劝| 长阳| 丹寨县| 康保县| 大名县| 黎城县| 东台市| 肥东县| 策勒县| 勐海县| 新野县| 博客| 和林格尔县| 乌兰县| 六枝特区| 昌黎县| 松滋市| 佛教| 古蔺县| 醴陵市| 监利县| 九寨沟县| 龙口市| 博兴县| 台北市| 耿马| 南汇区| 布尔津县| 垦利县| 堆龙德庆县| 邹城市| 聂荣县| 康平县| 丽水市| 德化县| 大连市| 鄂伦春自治旗| 兴和县| 牙克石市| 潞西市| 义乌市| 蓝田县| 高淳县| 观塘区| 河池市| 湾仔区| 闸北区| 青州市| 古田县| 叙永县| 商城县| 韶关市| 桂东县| 永定县| 辉南县| 靖远县| 祥云县| 闸北区| 合江县| 丹阳市| 长沙市| 新源县| 濉溪县| 桓仁| 临桂县| 阳新县| 浦北县| 清丰县| 贵港市| 武平县| 新闻| 双鸭山市| 黎平县| 五大连池市| 德令哈市| 新巴尔虎右旗| 永新县| 宜川县| 平泉县| 深州市| 临邑县| 连城县| 罗平县| 安福县| 梧州市| 庐江县| 乌拉特前旗| 台东市| 曲松县| 西藏| 怀仁县| 诏安县| 赤壁市| 武冈市| 靖边县| 安顺市| 石柱| 登封市| 淮滨县| 哈尔滨市| 台中县| 永兴县| 乐平市| 康平县| 尼玛县| 古田县| 叶城县| 巢湖市| 榕江县| 桃园市| 克山县| 叙永县| 荆门市| 开封市| 铁岭市| 武川县| 永年县| 集安市| 玉林市| 望奎县| 凤山市| 绥芬河市| 扶绥县| 滦南县| 巴林左旗| 宝应县| 南通市| 鱼台县| 尤溪县| 衢州市| 万州区| 永康市| 尚义县| 金沙县| 乐安县| 边坝县| 同江市| 博爱县| 班玛县| 肃南| 宁强县| 海原县| 沛县| 会昌县| 沧州市| 板桥市| 郴州市| 简阳市| 休宁县| 家居| 东至县| 台南县| 华安县| 北流市| 天气| 乌拉特中旗| 临安市| 绥中县| 奈曼旗| 肇州县| 洛浦县| 乃东县| 桓台县| 阳泉市| 四川省| 龙江县| 贞丰县| 繁峙县| 北安市| 龙海市| 信丰县| 新宾| 华阴市| 峨眉山市| 台前县| 南木林县| 嘉祥县| 克拉玛依市| 台中市| 临武县| 西城区| 瑞金市| 武鸣县| 丽江市| 商丘市| 永福县| 渭南市| 云南省| 平山县| 高清| 开远市| 汉川市| 德清县| 杭锦旗| 丹巴县| 栾川县| 兴隆县| 新源县| 微山县| 景泰县| 湘乡市| 双流县| 武功县| 桂平市| 进贤县| 岳西县| 闸北区| 台湾省| 田阳县| 大悟县| 合阳县| 奉新县| 大邑县| 镇巴县| 涞水县| 曲沃县| 元江| 陈巴尔虎旗| 封丘县| 揭阳市| 水城县| 兖州市| 治县。| 邳州市| 白朗县| 博爱县| 抚松县| 波密县| 平顺县| 长宁区| 澄江县| 柳林县| 芜湖县| 嵊泗县| 新干县| 霞浦县| 乐亭县| 建平县| 横山县| 青州市| 卓资县| 乐至县| 石城县| 田林县| 司法| 扎赉特旗| 武夷山市| 玉山县| 信宜市| 山东省| 大丰市| 太仆寺旗| 阿拉尔市| 加查县| 玉林市| 宁波市| 兴仁县| 泽州县| 宁乡县| 缙云县| 岳阳市| 吉林市| 宿迁市| 汝阳县| 甘肃省| 昆明市| 广东省| 贵州省| 长泰县| 南皮县| 太康县| 繁峙县| 田林县| 井陉县| 舒兰市| 信阳市| 博乐市| 华安县| 安福县| 旌德县| 淮南市| 株洲市| 山东省| 随州市| 永嘉县| 舟曲县| 郓城县| 大同市| 黄大仙区| 峨眉山市| 昌邑市| 乐东| 突泉县| 砀山县| 克拉玛依市| 新野县| 开封市| 瑞昌市| 郓城县| 舒城县| 金华市| 凤山市| 宁蒗| 大冶市| 博客| 监利县| 梁河县| 兴城市| 荣成市| 保靖县| 边坝县| 凯里市| 靖州| 双柏县| 宁津县| 福州市| 怀柔区| 阆中市| 五台县| 文昌市| 南开区| 新乡市| 那曲县| 济南市| 清远市| 伊宁市| 冀州市| 鞍山市| 永济市| 偏关县| 天镇县| 台北市| 通江县| 商丘市| 乳源| 邵东县| 乌审旗| 临颍县| 中阳县| 天柱县| 安国市| 西乌珠穆沁旗| 青河县| 同心县| 淳化县| 犍为县| 巴塘县| 鹤山市| 温州市| 安徽省| 龙井市| 牙克石市| 广河县| 贵州省| 营口市| 仪陇县| 阿尔山市| 华安县| 紫金县| 平远县| 荣昌县| 蒙阴县| 睢宁县| 宣化县| 加查县| 潮安县| 临江市| 普定县| 阿巴嘎旗| 酒泉市| http://www.gz1980binc.fun http://www.jvz0j9r2o.fun http://www.bo2020follows.fun http://m.yqo0j9rl8v.fun http://www.gz1980zatchc.fun http://www.bo2020contrasts.fun http://www.yqo2j5rl6v.fun http://wap.yqo7j6rl3v.fun http://m.gz1980downloadc.fun http://www.bo2020glasss.fun http://wap.bo2020drops.fun http://m.yqo8j8rl3v.fun http://www.gz1980copyrightc.fun http://wap.gz1980trafficc.fun http://wap.bo2020falls.fun