2021-04-07(uni-app使用iOS NFC功能快捷通讯方法)
测试环境HBuilder X 3.1.6基座SDK版本1.9.9.80552引用方式var nfcHelper = uni.requireNativePlugin("GLLNFCUniPlugin-Helper")APIiOS 11 NFCNDEFReaderSessionnfcNDEFReaderAvaliable()/*!* @method 同步判断是否支持NFCNDEFReaderSessi
·
测试环境
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);
})
更多推荐
已为社区贡献1条内容
所有评论(0)