RCT_EXPORT_METHOD for Zendesk support SDK



我正在尝试桥接 Zendesk 支持 SDK 以在我的 react 本机应用程序中呈现。

以下是我通常在 objective-c 中会做的事情:

#import "ViewController.h"
#import <ZendeskSDK/ZendeskSDK.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)ButtonPress:(id)sender {
    [ZDKHelpCenter presentHelpCenterWithViewController:self];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

如何使用RCT_EXPORT_METHOD桥接?

目前我得到了这样的东西:

#import "zendeskSupportView.h"
#import <ZendeskSDK/ZendeskSDK.h>
#import <React/RCTBridge.h>
#import <React/RCTEventDispatcher.h>
#import <React/UIView+React.h>
@implementation zendeskSupportView
RCT_EXPORT_MODULE()
RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback)
{
  UIViewController *rootController = [UIApplication sharedApplication].delegate.window.rootViewController;
  rootController = [rootController topMostController];
  [ZDKHelpCenter presentHelpCenterWithViewController:rootController];
}

@end

要设置本机模块,您可以参考 react 本机模块文档,或者查看我之前在我的项目中创建的打开 IOS 设置应用程序的小模块的要点。

在RCT_EXPORT_METHOD宏代码中,需要调用 [ZDKHelpCenter presentHelpCenterWithViewController:self]; 。由于此函数中没有直接可用的控制器实例,因此您可以执行以下操作:

UIViewController *rootController = [UIApplication sharedApplication].delegate.window.rootViewController;
rootController = [rootController topMostController];
[ZDKHelpCenter presentHelpCenterWithViewController:rootController];

上面的代码,将ios控制器堆栈中最顶层的控制器传递给ZendDeskHelpCenter。

相关内容

  • 没有找到相关文章

最新更新