Jar*_*iuk 59
更新(免责声明):
自从我给出原始答案后,情况发生了变化.在我的公司(Polidea),因为我们意识到没有非常好的React Native for BT库我们开发并完全开源(许可许可)我们自己的解决方案.它基于两个基于RX的Android和iOS本机库,我们围绕它编写了一个通用的React Native包装器,以便您可以使用相同的Javascript/RN接口,但在本机代码下处理原生iOS/Android细节.
该库位于:https://github.com/Polidea/react-native-ble-plx
免责声明:我是首席软件工程师和前CTO @Polidea--创建该库的公司.
原始答案:
我不认为RN中有蓝牙访问的内置组件.
如果您想使用蓝牙,您需要编写自己的Obj-C API组件(如https://facebook.github.io/react-native/docs/native-modules-ios.html#content中所述)或使用一些适合您需要的第三方组件,而有人已经做过.有几个可用(快速谷歌搜索):
https://github.com/frostney/react-native-bluetooth-state
https://github.com/frostney/react-native-ibeacon
不确定它们是否运行良好,但如果您需要其他功能,可以将它们作为起点.
我创建了一个跨平台的蓝牙/ WIFI框架,允许您以类似于Apple的Multipeer Connectivity和Google的Nearby Connections的方式浏览和宣传.它适用于Android和iOS,因此您可以将消息从iOS设备发送到Android设备,反之亦然.以下是该库的示例,可在https://github.com/alexkendall/RCTUnderdark找到
import {
NativeModules,
NativeAppEventEmitter,
} from 'react-native';
import React from 'react';
var NativeManager = NativeModules.NetworkManager
module.exports = {
// kind can be one of "WIFI", "BT", and "WIFI-BT"
browse(kind) {
NativeManager.browse(kind)
},
// kind can be one of "WIFI", "BT", and "WIFI-BT"
advertise(kind) {
NativeManager.advertise(kind)
},
stopAdvertising() {
NativeManager.stopAdvertising()
},
stopBrowsing() {
NativeManager.stopBrowsing()
},
disconnectFromPeer(peerId) {
NativeManager.disconnectFromPeer(peerId)
},
inviteUser(peerId) {
NativeManager.inviteUser(peerId)
},
sendMessage(message, peerId) {
NativeManager.sendMessage(message, peerId)
},
acceptInvitation(peerId) {
NativeManager.acceptInvitation(peerId)
},
getNearbyPeers(callback) {
NativeManager.getNearbyPeers((peers) => {
callback(peers)
})
},
getConnectedPeers(callback) {
NativeManager.getConnectedPeers((peers) => {
callback(peers)
})
},
/*listener callbacks
peer contains .id (string), type(string), connected(bool), message(string), display name(string)
*/
addPeerDetectedListener(callback) {
NativeAppEventEmitter.addListener(
'detectedUser',
(peer) => callback(peer)
);
},
addPeerLostListener(callback) {
NativeAppEventEmitter.addListener(
'lostUser',
(peer) => callback(peer)
);
},
addReceivedMessageListener(callback) {
NativeAppEventEmitter.addListener(
'messageReceived',
(peer) => callback(peer)
);
},
addInviteListener(callback) {
NativeAppEventEmitter.addListener(
'receivedInvitation',
(peer) => callback(peer)
);
},
addConnectedListener(callback) {
NativeAppEventEmitter.addListener(
'connectedToUser',
(peer) => callback(peer)
);
},
}
Run Code Online (Sandbox Code Playgroud)
检查这个包,为我提供真正的生活保护,适用于iOS和Android. React Native BLE Manager你可以用它执行各种蓝牙活动:扫描,连接,发送,启用,禁用,断开连接等.你应该检查一下!
| 归档时间: |
|
| 查看次数: |
42703 次 |
| 最近记录: |