Tor*_*ang 5 react-native native-module
尝试创建我的第一个 npm 模块以确定用户是否正在打电话。它适用于 React Native 应用程序。无论我尝试什么,模块都会返回未定义。NativeModules 始终显示为空对象。
请帮忙!下面是代码的链接。export default RNOnPhoneCall;inindex.js只会返回未定义。如何链接ios文件夹中的函数并将其导出到 中index.js?注意,android还不是最新的,只是ios。
经过一番观察,我发现 Obj-C 文件没有添加到 Xcode 的编译源中。请跟我来:假设文件名是:NotchNative.h和NotchNative.m。如果该NotchNative.m文件未列出,则 Xcode 不会编译该文件,因此需要将其添加到编译源中。
按照图像中的步骤重新构建/运行 iOS 应用程序。这肯定是 Xcode 方面的错误,因为在 Swift 项目中不会发生这种情况。
我没有在 iOS 文件中正确导出该方法。这是解决方案以及最终项目的链接。
github 上的 React-native-check-phone-call-status
#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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5256 次 |
| 最近记录: |