gpt4 book ai didi

objective-c - 错误: @"Bridge module %@ does not conform to RCTBridgeModule"

转载 作者:行者123 更新时间:2023-12-02 03:41:47 25 4
gpt4 key购买 nike

我是 React Native 的新手,我想使用 native 模块来获取手机的电池状态。问题是我收到以下错误:@“桥接模块 %@ 不符合 RCTBridgeModule”。我猜它与类相关,但我不熟悉 Objective-C 语法。 即使答案很简单,我也非常感谢在这个领域的任何帮助。谢谢!

我的 BatteryStatus.h 如下所示:

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>

@interface BatteryStatus : RCTEventEmitter <RCTBridgeModule>
@end

我的 BatteryStatus.m 如下所示:

#import "BatteryStatus.h"

@implementation BatteryStatus
RCT_EXPORT_MODULE(BatteryStatus)

- (instancetype)init
{
if ((self = [super init])) {

[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];

}
return self;
}

RCT_EXPORT_METHOD(hide) {
}

RCT_EXPORT_METHOD(updateBatteryLevel:(RCTResponseSenderBlock)callback)
{
callback(@[[self getBatteryStatus]]);
}

//manually get battery status by calling following method

-(NSDictionary*)getBatteryStatus
{

float batteryLevel = [UIDevice currentDevice].batteryLevel;

NSObject* currentLevel = nil;

currentLevel = [NSNumber numberWithFloat:(batteryLevel * 100)];

NSMutableDictionary* batteryData = [NSMutableDictionary dictionaryWithCapacity:2];

[batteryData setObject:currentLevel forKey:@"level"];
return batteryData;

}

@end

我正在尝试在 React Native 中使用它,如下所示:

import { Text, View, NativeModules } from 'react-native';
import React, { Component } from 'react';

class App extends Component {

constructor(props) {
super(props);
this.state = {
batteryLevel: null,
};
}

componentDidMount() {
NativeModules.BatteryStatus.updateBatteryLevel((info) => {
console.log(info.level);
const level = Math.ceil(info.level);
this.setState({ batteryLevel: level });
});
}
render() {
return (
<View>
<Text>TEST</Text>
</View>
);
}
}


export default App;

最佳答案

就您而言,您不应该继承RCTEventEmitter。仅当您想将事件从 native 模块发送到 JS 来监听模块的特定事件时,才需要这样做;在这种情况下,您需要在 native 模块中实现 supportedEvents 方法并指定您支持的事件的名称。 由于您没有实现此方法,因此您收到此异常。

由于您没有发送任何事件,因此 BatteryStatus 应该继承基本的 NSObject 类,如下所示:

@interface BatteryStatus : NSObject <RCTBridgeModule>
@end

我建议您查看 RN 指南来创建 native ios modules

关于objective-c - 错误: @"Bridge module %@ does not conform to RCTBridgeModule",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48384933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com