2021-04-07(uni-app使用iOS NFC功能快捷通讯方法)

测试环境

HBuilder X 3.1.6
基座SDK版本1.9.9.80552

引用方式

var nfcHelper = uni.requireNativePlugin("GLLNFCUniPlugin-Helper")

API

iOS 11 NFCNDEFReaderSession

  • nfcNDEFReaderAvaliable()
/*!
 * @method 同步判断是否支持NFCNDEFReaderSession
 */
// 示例
var ret = nfcHelper.nfcNDEFReaderAvaliable()
var tipText = null
if(ret) {
	tipText = "支持NFC读取"
}else {
	tipText = "不支持NFC读取"
}
console.log(tipText)
  • nfcNDEFReaderAvaliableCallback(callback)
/*!
 * @method 异步判断是否支持NFCNDEFReaderSession
 * @param callback  回调方法,回传参数给 js端。格式为NSDictionary其中包含
 *      resultCode:是否支持
 *      resultMsg:详细信息
 */
// 示例
// 调用异步方法
nfcHelper.nfcNDEFReaderAvaliableCallback((ret) => {
		var tipText = null
		if(ret) {
			tipText = "支持NFC读取"
		}else {
			tipText = "不支持NFC读取"
		}
		console.log(tipText)
	})
  • invalidateNDEFReaderSession()
/*!
 * @method 关闭NFCNDEFReaderSession标签扫描功能
 */
// 示例
nfcHelper.invalidateNDEFReaderSession()
  • beginNDEFReaderSessionWithParams(option, callback)
/*!
 * @method 开启NFCNDEFReaderSession标签扫描功能
 * @param params js 端调用方法时传递的参数。格式如下
 *      invalidateAfterFirstRead:读完一个NDEF数据后是否继续读取,默认NO
 *      alertMessage:扫描标签时弹窗下显示的提示内容,默认不显示
 * @param callback 回调方法,回传参数给 js端。格式为NSDictionary其中包含
 *      resultCode:状态码,成功时为9000
 *      resultMsg:状态码描述
 *      payloads:读取的NDEF数据,NSDictionary格式,其中包含以下字段
 *          typeName:标签类型名称,字符串格式。可能为Empty、NFCWellKnown、Media、AbsoluteURI、NFCExternal、Unknown、Unchanged、空
 *          payload:标签数据,NSData数据格式
 *          type:标签类型,NSData数据格式
 *          indentifier:标签标识,NSData数据格式
 *
 * @note 开启一个session,并且同时只能开启一个
 * @note session最多扫存活60s,超时必须重启新session
 * @note App完全在前台模式,切入后台失效
 */
// 示例
// 调用异步方法
nfcHelper.beginNDEFReaderSessionWithParams({
		'invalidateAfterFirstRead': true,
		'alertMessage': '靠近NFC标签'
	},
	(ret) => {
		nfcHelper.invalidateNDEFReaderSession()
		setTimeout(() =>{
		    uni.showToast({
		    	title:'异步方法 ' + JSON.stringify(ret),
		    	icon: "none"
		    })
		}, 2.0);
	})

iOS 13 NFCTagReaderSession

  • nfcTagReaderAvaliable()
/*!
 * @method 同步判断是否支持NFCTagReaderSession
 */
// 示例
var ret = nfcHelper.nfcTagReaderAvaliable()
var tipText = null
if(ret) {
	tipText = "支持NFC读取"
}else {
	tipText = "不支持NFC读取"
}
console.log(tipText)
  • nfcTagReaderAvaliableCallback(callback)
/*!
 * @method 异步判断是否支持NFCTagReaderSession
 * @param callback  回调方法,回传参数给 js端。格式为NSDictionary其中包含
 *      resultCode:是否支持
 *      resultMsg:详细信息
 */
// 示例
nfcHelper.nfcTagReaderAvaliableCallback((ret) => {
	var tipText = null
		if(ret) {
			tipText = "支持NFC读取"
		}else {
			tipText = "不支持NFC读取"
		}
		console.log(tipText)
	})
  • beginTagReaderSessionAndConnectTagWithParams(option, callback)
/*!
 * @method 开启NFCTagReaderSession标签扫描功能并建立连接
 * @param params js 端调用方法时传递的参数。格式为NSDictionary其中
 *      alertMessage:扫描标签时弹窗下显示的提示内容,默认不显示
 * @param callback 回调方法,回传参数给 js端。格式为NSDictionary其中包含
 *      resultCode:状态码,9000为标签靠近手机后连接成功,连接成功后才可以进行数据收发交互
 *      resultMsg:状态码描述,格式为NSString字符串
 *
 * @note 开启一个session,并且同时只能开启一个
 * @note session最多扫存活60s,超时必须重启新session
 * @note App完全在前台模式,切入后台失效
 */
// 示例
// 调用异步方法
nfcHelper.beginTagReaderSessionAndConnectTagWithParams({
		'alertMessage': '靠近NFC标签'
	},
	(ret) => {
		if (ret.resultCode == 9000) {
			this.writeDataToTag()
		}else {
			setTimeout(() =>{
			    uni.showToast({
			    	title:'异步方法 ' + JSON.stringify(ret),
			    	icon: "none"
			    })
			}, 2.0);
		}
	})
  • invalidateTagReaderSession()
/*!
 * @method 关闭NFCNDEFReaderSession标签扫描功能
 */
// 示例
nfcHelper.invalidateTagReaderSession()
  • writeTo15693TagWithParams(option, callback)
/*!
 * @method 对15693标签进行数据收发交互,需先建立连接再使用该方法
 * @param params js 端调用方法时传递的参数。格式如下
 *      commandCode:标签为15693时存在,Custom command code defined by the IC manufacturer.  Valid range is 0xA0 to 0xDF inclusively.
 *      writeData:Custom request parameters defined by the command.
 * @param callback 回调方法,回传参数给 js端。格式为NSDictionary其中包含
 *      resultCode:状态码,9000为数据收发成功,标签返回数据请看描述信息。
 *      resultMsg:状态码描述,格式为NSString字符串。当数据收发成功时,此字段数据为Hex字符串类型。
 *
 * @discussion                      Custom command (0xA0 to 0xDF command code) as defined in ISO15693-3 specification.  IC manufacturer code from the tag is
 *                                  automatically inserted after the command byte before appending the custom request parameters in forming the packet.
 */
// 示例
// 15693标签
nfcHelper.writeTo15693TagWithParams({
		'commandCode': 0xC0,
		'writeData': '0600',
	},
	(ret) => {
		nfcHelper.invalidateTagReaderSession()
		setTimeout(() =>{
		    uni.showToast({
		    	title:'异步方法 ' + JSON.stringify(ret),
		    	icon: "none"
		    })
		}, 2.0);
	})
  • writeToMifareTagWithParams(option, callback)
/*!
 * @method 对Mifare标签进行数据收发交互
 * @param params js 端调用方法时传递的参数。格式如下
 *      writeData:Custom request parameters defined by the command.
 * @param callback 回调方法,回传参数给 js端。格式为NSDictionary其中包含
 *      resultCode:状态码,9000为数据收发成功,标签返回数据请看描述信息。
 *      resultMsg:状态码描述,格式为NSString字符串。当数据收发成功时,此字段数据为Hex字符串类型。
 *
 */
// 示例
// Mifare标签
nfcHelper.writeToMifareTagWithParams({
		'commandCode': 0xC0,
		'writeData': '0600',
	},
	(ret) => {
		nfcHelper.invalidateTagReaderSession()
		setTimeout(() =>{
		    uni.showToast({
		    	title:'异步方法 ' + JSON.stringify(ret),
		    	icon: "none"
		    })
		}, 2.0);
	})
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值