【问题标题】:React Native NativeModules Empty ObjectReact Native NativeModules 空对象
【发布时间】:2017-08-29 23:46:54
【问题描述】:

尝试创建我的第一个 npm 模块以确定用户是否在打电话。它适用于 React Native 应用程序。无论我尝试什么,模块都会返回未定义。 NativeModules 总是看起来是一个空对象。

请帮忙!下面是代码的链接。 export default RNOnPhoneCall; 中的 index.js 只会返回未定义的。如何链接ios文件夹中的函数,并将它们导出到index.js?注意,android 还不是最新的,只有ios

Link to Github

【问题讨论】:

    标签: react-native native-module


    【解决方案1】:

    尝试重建您的项目。我最近遇到了同样的问题,只是重建解决了它

    【讨论】:

      【解决方案2】:

      在窥探了一下之后,我发现 Obj-C 文件没有添加到 Xcode 中的编译源中。跟我来: 假设文件名是:NotchNative.hNotchNative.m。如果NotchNative.m 文件未列出,Xcode 将不会编译这些文件,因此需要将其添加到 Compile Sources 中。

      按照图片中的步骤重新构建/运行 iOS 应用。 这肯定是 Xcode 方面的错误,因为在 Swift 项目中不会发生这种情况。

      【讨论】:

        【解决方案3】:

        我没有在我的 iOS 文件中正确导出该方法。这是解决方案,以及最终项目的链接。

        react-native-check-phone-call-status on github

        #import "RNCheckPhoneCallStatus.h"
        #import "React/RCTLog.h"
        #import <AVFoundation/AVAudioSession.h>
        #import<CoreTelephony/CTCallCenter.h>
        #import<CoreTelephony/CTCall.h>
        
        @implementation RNCheckPhoneCallStatus
        
        RCT_EXPORT_MODULE()
        
        RCT_EXPORT_METHOD(get:(RCTResponseSenderBlock)callback)
        {
            NSString *phoneStatus = @"PHONE_OFF";
            CTCallCenter *ctCallCenter = [[CTCallCenter alloc] init];
            if (ctCallCenter.currentCalls != nil)
            {
                NSArray* currentCalls = [ctCallCenter.currentCalls allObjects];
                for (CTCall *call in currentCalls)
                {
                    if(call.callState == CTCallStateConnected)
                    {
                        phoneStatus = @"PHONE_ON";
                    }
                }
            }
            callback(@[[NSNull null], phoneStatus]);
        }
        
        @end
        

        【讨论】:

        • 另外,如果您关注react tutorial,这有点误导。它将在打开调试模式的情况下工作。如果你想让它在没有调试模式的情况下工作,你需要这里提到的回调。
        猜你喜欢
        • 2018-06-25
        • 1970-01-01
        • 2018-04-30
        • 1970-01-01
        • 2020-10-08
        • 2018-07-24
        • 2017-05-02
        • 2022-06-28
        • 1970-01-01
        相关资源
        最近更新 更多