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

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金
蓝月亮料精选资料免费 革吉县| 普陀区| 图们市| 九台市| 井研县| 岳普湖县| 罗平县| 巴南区| 游戏| 长岭县| 渭南市| 谷城县| 邯郸市| 清流县| 阿巴嘎旗| 曲阳县| 武清区| 湟中县| 阿克苏市| 九台市| 广西| 玉树县| 荥经县| 绥棱县| 牟定县| 双江| 西安市| 丁青县| 广南县| 文安县| 平山县| 土默特右旗| 寿光市| 五指山市| 卢湾区| 曲靖市| 岳西县| 岚皋县| 大洼县| 嘉祥县| 和静县| 大连市| 江阴市| 日照市| 云梦县| 黑水县| 青阳县| 无极县| 乌拉特中旗| 陕西省| 河津市| 都江堰市| 施甸县| 呼图壁县| 桐梓县| 梓潼县| 西乌珠穆沁旗| 富锦市| 通化市| 霍林郭勒市| 柳河县| 武安市| 景洪市| 平舆县| 新民市| 子长县| 邢台县| 叙永县| 临沧市| 大埔区| 舒城县| 陵川县| 辉南县| 天津市| 弥勒县| 五华县| 乌拉特前旗| 朔州市| 满洲里市| 丽水市| 金平| 定兴县| 建德市| 云阳县| 札达县| 阿拉尔市| 安义县| 奉新县| 巴南区| 电白县| 遂宁市| 静海县| 若羌县| 卢氏县| 青海省| 长白| 望谟县| 西乌| 迭部县| 镇雄县| 白水县| 泽库县| 平安县| 台北县| 宁南县| 长兴县| 麻阳| 大城县| 泰州市| 安多县| 陈巴尔虎旗| 吉隆县| 怀柔区| 克东县| 灵璧县| 邵武市| 海盐县| 沁源县| 教育| 集贤县| 阳高县| 云安县| 青冈县| 九寨沟县| 高台县| 全椒县| 泰安市| 民和| 郴州市| 乌鲁木齐市| 长岭县| 旌德县| 珲春市| 莲花县| 顺昌县| 正蓝旗| 象州县| 游戏| 锦州市| 乳山市| 宜川县| 鄂尔多斯市| 获嘉县| 子长县| 滦南县| 无极县| 台东市| 古浪县| 玉林市| 夏邑县| 贵州省| 辽源市| 广汉市| 望奎县| 南充市| 巩留县| 辉南县| 福建省| 卫辉市| 南雄市| 潍坊市| 南昌市| 黄浦区| 张家口市| 石首市| 阳原县| 新宁县| 通海县| 朔州市| 上饶县| 宁远县| 广元市| 阳信县| 北宁市| 淳安县| 海兴县| 屯门区| 六盘水市| 高青县| 霍林郭勒市| 尚义县| 临朐县| 金山区| 元阳县| 新源县| 宁津县| 奉节县| 邯郸市| 喀什市| 且末县| 延长县| 绵竹市| 荥阳市| 金华市| 吉木乃县| 沈丘县| 漾濞| 台北市| 建阳市| 来宾市| 大英县| 望谟县| 内江市| 苗栗市| 同心县| 涞水县| 西畴县| 靖远县| 理塘县| 耒阳市| 藁城市| 清新县| 冀州市| 道孚县| 天津市| 高淳县| 永春县| 东明县| 余姚市| 松江区| 闻喜县| 高陵县| 聂拉木县| 平果县| 大悟县| 古交市| 雅安市| 福鼎市| 息烽县| 石泉县| 涿州市| 饶河县| 眉山市| 正阳县| 信宜市| 漳州市| 华蓥市| 栾川县| 福建省| 凉山| 永安市| 旬邑县| 伊金霍洛旗| 麻阳| 威宁| 历史| 苗栗县| 梨树县| 钟祥市| 岚皋县| 阿合奇县| 楚雄市| 民权县| 漳州市| 图们市| 平阳县| 高清| 芮城县| 龙门县| 华坪县| 静安区| 鹿邑县| 陇川县| 隆子县| 南华县| 晋宁县| 太原市| 陇西县| 蓬安县| 益阳市| 库伦旗| 喜德县| 项城市| 贡嘎县| 宜丰县| 荔浦县| 延庆县| 梅河口市| 长沙市| 钦州市| 尼木县| 武鸣县| 珲春市| 额尔古纳市| 枣强县| 祥云县| 阳曲县| 九寨沟县| 安图县| 张家界市| 大埔区| 衡阳县| 水城县| 两当县| 米脂县| 新河县| 循化| 平远县| 邹平县| 靖江市| 扶余县| 疏勒县| 通城县| 沁水县| 沁阳市| 丰原市| 临清市| 宝兴县| 南华县| 唐山市| 中阳县| 安达市| 进贤县| 枣强县| 曲靖市| 郓城县| 抚松县| 昆明市| 连江县| 比如县| 芦溪县| 香格里拉县| 永新县| 荆门市| 会同县| 凭祥市| 临泽县| 昌吉市| 兴海县| 河南省| 准格尔旗| 苏尼特左旗| 砚山县| 靖安县| 甘德县| 普陀区| 延津县| 沁阳市| 大城县| 古交市| 手游| 田阳县| 宁化县| 界首市| 长海县| 新化县| 锦州市| 电白县| 海城市| 吴川市| 吉木乃县| 仙居县| 达州市| 夏河县| 凤山市| 易门县| 临颍县| 长岛县| 满城县| 额尔古纳市| 新巴尔虎右旗| 肃宁县| 云龙县| 德惠市| 武胜县| 通道| 乡宁县| 连平县| 金塔县| 大名县| 辽宁省| 大洼县| 公主岭市| 常熟市| 武山县| 东安县| 庐江县| 疏勒县| 大英县| 鄂尔多斯市| 张掖市| 望江县| 隆子县| 杭锦后旗| 昌乐县| 丹巴县| 桃园县| 苗栗县| 民丰县| 湾仔区| 资兴市| 汝城县| 托克托县| 雷波县| 信阳市| 台南县| 恩平市| 囊谦县| 郑州市| 潮安县| 安龙县| 博野县| 西吉县| 陆良县| 威远县| 登封市| 临沂市| 屏东县| 隆林| 青岛市| 互助| 中方县| 屯门区| 余干县| 永城市| 马尔康县| 西贡区| 泽库县| 元谋县| 托里县| 敖汉旗| 玉屏| 高州市| 依兰县| 闵行区| 澳门| 陇南市| 辉县市| 邵阳县| 娱乐| 集贤县| 开江县| 阿坝| 宁河县| 青州市| 富裕县| 长子县| 卢龙县| 喀喇| 通海县| 山东省| 昌黎县| 吉隆县| 和林格尔县| 景谷| 尉氏县| 五指山市| 许昌县| 当阳市| 广元市| 雅江县| 平舆县| 五莲县| 长宁区| 迭部县| 百色市| 玉山县| 台东县| 天等县| 乐清市| 彭州市| 紫云| 合肥市| 双桥区| 达尔| 明水县| 临邑县| 胶州市| 吉安市| 大丰市| 昆山市| 吴堡县| 靖边县| 全州县| 沈丘县| 波密县| 南阳市| 奎屯市| 涿鹿县| 沂水县| 彭阳县| 曲沃县| 资兴市| 陆川县| 海口市| 宁陵县| 邵阳县| 镇江市| 桦川县| 米泉市| 龙门县| 河津市| 绥阳县| 遂昌县| 泾川县| 安国市| 枝江市| 松潘县| 察雅县| 营山县| 清河县| 宜兰县| 台中县| 龙陵县| 长岛县| 乾安县| 沙田区| 当阳市| 达日县| 舒兰市| http://wap.yqo3j3rl7v.fun http://m.bo2020fixs.fun http://www.jvz0j9r7o.fun http://wap.gz1980insertc.fun http://www.yqo2j4rl5v.fun http://www.jvz0j3r6o.fun http://m.gz1980perfectc.fun http://www.bo2020wears.fun http://www.yqo1j6rl3v.fun http://wap.yqo3j8rl0v.fun http://www.gz1980puzpc.fun http://wap.gz1980frontc.fun http://m.bo2020slides.fun http://www.yqo2j8rl7v.fun http://wap.yqo1j9rl3v.fun