我正在实现访问iOS功能的本机界面。
//SPRNUtilities.h at /ios/project_name
#import <React/RCTBridgeModule.h>
@interface SPRNUtilities : NSObject <RCTBridgeModule>
@end
//SPRNUtilities.m
#import "SPRNUtilities.h"
@implementation SPRNUtilities
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(pushNotificationEnabled:(RCTResponseSenderBlock)callback)
{
id object = nil;
if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]){
object = @(YES);
}else{
object = [NSNull null];
}
callback(@[object]);
}
当我在JS代码上访问它时,
import { Platform, StyleSheet, NativeModules} from 'react-native';
export default class SPReactNativeUtils{
static pushNotificationEnabled(callback){
if (Platform.OS === 'ios'){
const SPNativeiOS = NativeModules.SPRNUtilities;
SPNativeiOS.pushNotificationEnabled((enabled) => {
callback(enabled);
});
}else{
callback(false);
}
}
}
但得到了失败的消息:
有人可以帮助我,为什么我遇到这个问题? 非常感谢!!!
答案 0 :(得分:0)
根据上面提供的信息,请尝试使用以下选项进行调试:
SPReactNativeUtils.js
行号。 4放置一个控制台日志来检查是否定义了回调SPNativeiOS
是否已定义 - 如果不是这样,大多数情况下会为您提供更广泛的图片,然后转到选项3 yarn run ios
(每当更改本机代码时创建新版本)希望这会有所帮助。如果没有,请提供上述选项的输出,以帮助我们调试更多:)