Мой проект требует, чтобы получить и отправить сигнал Bluetooth, и я довольно новичок в реагировании-native, поэтому какой компонент я могу использовать в реакции-родной для функций, связанных с Bluetooth?
Bluetooth в режиме реагирования
Ответ 1
Обновление (с отказом):
Поскольку я дал оригинальный ответ, все изменилось. В моей компании (Polidea), поскольку мы поняли, что нет очень хорошей библиотеки для React Native для BT, которую мы разработали и полностью открытые (разрешающие лицензия) наше собственное решение. Он основан на двух основанных на RX Android-и iOS-родных библиотеках, и мы написали общую оболочку React Native вокруг него, чтобы вы могли использовать один и тот же интерфейс Javascript/RN, но под капотом. Спецификации iOS/Android обрабатываются в собственном коде.
Библиотека находится здесь: https://github.com/Polidea/react-native-ble-plx
Отказ от ответственности: я - главный инженер-программист и бывший CTO @Polidea - компания, которая создала библиотеку.
Оригинальный ответ:
Я не думаю, что есть встроенный компонент для доступа Bluetooth в RN.
Если вы хотите использовать Bluetooth, вам нужно либо написать свой собственный компонент API Obj-C (как описано в https://facebook.github.io/react-native/docs/native-modules-ios.html#content) или использовать некоторые сторонние компоненты, которые удовлетворяют вашим потребностям, когда кто-то это сделал. Есть несколько доступных (быстрый поиск в Google):
https://github.com/frostney/react-native-bluetooth-state
https://github.com/frostney/react-native-ibeacon
Не уверен, что они работают хорошо, но вы можете использовать их в качестве отправной точки, если вам нужны другие функции.
Ответ 2
Я создал кросс-платформенную инфраструктуру Bluetooth/WIFI, которая позволяет вам просматривать и рекламировать таким образом, как Apple Multipeer Connectivity и Google Near 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)
);
},
}
Ответ 3
Проверьте этот пакет, реальную жизнь для меня и работайте как на iOS, так и на Android. React Native BLE Manager вы можете выполнять с ним все виды действий bluetooth: сканировать, подключаться, отправлять, включать, отключать, отключать и т.д. должен проверить это!