проблема с отправкой Emita с девайса в js код

239
20 октября 2017, 16:19

Доброго времени суток всем) стоит задача переписать существующий модуль к ios устройствам для react native, а если точнее добавить таймаут при передачи данных сенсора в js код. objective-c я практически не знаю, кое-каким образом я добавил таймаут но Emit с устройства в js код не приходит. Помогите понять в чем проблема.

введите 
`#import "Magnetometer.h"
`#import <React/RCTBridge.h>
`#import <React/RCTConvert.h>
`#import <React/RCTEventDispatcher.h>
`#import <CoreLocation/CoreLocation.h>

 @interface Magnetometer() <CLLocationManagerDelegate>
 @property (strong, nonatomic) CLLocationManager *locManager;
 @property (nonatomic) CLLocationDirection currentHeading;
 @property (nonatomic) long timeout;
 @end
 @implementation Magnetometer
 RCT_EXPORT_MODULE();
 @synthesize bridge = _bridge;
 long lastInvokedAt;
 `#pragma mark Initialization
 `- (instancetype)init
  {
   if (self = [super init]) {
    self.locManager = [[CLLocationManager alloc] init];
    self.locManager.delegate = self;
    }
   return self;
    }
 RCT_REMAP_METHOD(start, start:(int)headingFilter timeout:       (int)timeout) {
   // Start heading updates.
   self.timeout = timeout;
     if (!headingFilter)
      headingFilter = 5;
    self.locManager.headingFilter = headingFilter;
     [self.locManager startUpdatingHeading];
 }
  RCT_EXPORT_METHOD(stop) {
   [self.locManager stopUpdatingHeading];
 }
`- (void)locationManager:(CLLocationManager *)manager      didUpdateHeading:(CLHeading *)newHeading {
  if (newHeading.headingAccuracy < 0)
    return;
  // Use the true heading if it is valid.
  if(self.timeout==0){
    CLLocationDirection heading = ((newHeading.trueHeading > 0) ?
                               newHeading.trueHeading :      newHeading.magneticHeading);
   NSDictionary *headingEvent = @{@"heading": @(heading)};
[self.bridge.eventDispatcher se      ndDeviceEventWithName:@"headingUpdated" body:headingEvent];
    }else{
   long currentTime = CFAbsoluteTimeGetCurrent();
   if(currentTime-lastInvokedAt>_timeout){
lastInvokedAt=currentTime;
CLLocationDirection heading = ((newHeading.trueHeading > 0) ?
                               newHeading.trueHeading : newHeading.magneticHeading);
NSDictionary *headingEvent = @{@"heading": @(heading)};
[self.bridge.eventDispatcher sendDeviceEventWithName:@"headingUpdated" body:headingEvent]; } }}@endсюда код
READ ALSO
Добавить символ плюс в маску

Добавить символ плюс в маску

Составил регулярное выражение,но не соображу, как добавить символ плюса вначале

264
ASP.NET не отрабатывает javascript

ASP.NET не отрабатывает javascript

ЗдравствуйтеЕсть проект ASP

474
Как подключить модуль с GitHub в свой проект?

Как подключить модуль с GitHub в свой проект?

Часто встречаю на GitHub модули, в описании которых присутствуют примерно такие строки: old school Grab file from dist directory

342
Как менять данные сайта, не пересаливая код?

Как менять данные сайта, не пересаливая код?

У меня есть благотворительный сайт, где нужно постоянно обновлять информацию о собранных средствахНа данный момент я хардкодю каждый раз...

227