Mon projet nécessite de recevoir et d'envoyer un signal Bluetooth, et je suis assez nouveau pour réagir en mode natif. Quel composant puis-je utiliser dans Réactif pour les fonctionnalités liées à Bluetooth?
Mise à jour (avec exclusion de responsabilité) :
Depuis que j'ai donné la réponse initiale, les choses ont changé. Dans mon entreprise ( Polidea ) car nous nous sommes rendu compte qu’il n’existait pas de très bonne bibliothèque pour React), une solution native pour BT, nous avons développé et entièrement open-source (licence permissive) notre propre solution. Il est basé sur deux bibliothèques natives Android et iOS natives basées sur RX) et nous avons écrit un React natif autour de celui-ci pour que vous puissiez utiliser le même code Javascript/Une interface RN mais sous le capot Les spécificités natives iOS/Android sont gérées en code natif.
La bibliothèque est ici: https://github.com/Polidea/react-native-ble-plx
Clause de non-responsabilité: Je suis ingénieur principal en logiciel et ancien directeur de la technologie @Polidea - la société qui a créé la bibliothèque.
Réponse originale:
Je ne pense pas qu'il existe un composant intégré pour l'accès Bluetooth dans RN.
Si vous souhaitez utiliser Bluetooth, vous devez soit écrire votre propre composant API Obj-C (comme décrit à l’adresse suivante: https://facebook.github.io/react-native/docs/native-modules-ios.html #content ) ou d’utiliser des composants tiers qui répondent à vos besoins là où quelqu'un l’a déjà fait. Il y en a quelques-uns disponibles (recherche rapide sur Google):
https://github.com/frostney/react-native-bluetooth-state
https://github.com/frostney/react-native-ibeacon
Vous n'êtes pas sûr qu'ils fonctionnent bien, mais vous pouvez les utiliser comme point de départ si vous avez besoin d'autres fonctionnalités.
J'ai créé un cadre Bluetooth/WIFI multiplateforme qui vous permet de parcourir et de faire de la publicité d'une manière similaire à la connectivité Multipeer d'Apple et aux connexions à proximité de Google. Il fonctionne entre Android et iOS afin que vous puissiez envoyer des messages d’un périphérique iOS à un périphérique Android et inversement. Voici un exemple de la bibliothèque qui peut être trouvé à 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)
);
},
}
Jetez un coup d'œil à ce paquet, qui me permet d'économiser de la vie réelle et fonctionne à la fois sur iOS et Android. React Native BLE Manager vous pouvez effectuer toutes sortes d’activités Bluetooth: numériser, connecter, envoyer, activer, désactiver, déconnecter, etc. Vous devriez le vérifier!