Подтвердить что ты не робот

Bluetooth в режиме реагирования

Мой проект требует, чтобы получить и отправить сигнал Bluetooth, и я довольно новичок в реагировании-native, поэтому какой компонент я могу использовать в реакции-родной для функций, связанных с Bluetooth?

4b9b3361

Ответ 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: сканировать, подключаться, отправлять, включать, отключать, отключать и т.д. должен проверить это!