我目前正在React Native中构建一个应用程序,面临一个我似乎无法在我的RN框架中解决的问题,我可能需要提一下,我对Objective-C非常新。但是,我设法通过在AppDelegate.m文件中调用它来获取它。但是,如何将我在appdelegate中创建的字符串变量传递给我的javascript文件?
我快速地看了一下NativeAppEventEmitter,但它似乎有所不同。在我的AppDelegate.m中,它看起来像这样:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
NSString *fbAccessToken = [FBSDKAccessToken currentAccessToken].tokenString;
return handled;
}
看看RN提供的NativeAppEventEmitter技巧,我试图实现它。但它抱怨我的桥梁很多。
#import "AppDelegate.h"
#import "RCTRootView.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import "RCTBridge.h"
#import "RCTBridgeModule.h"
#import "RCTEventDispatcher.h"
@implementation AppDelegate
RCT_EXPORT_MODULE();
@synthesize bridge = _bridge;
我在AppDelegate.h
中的位置声明为:@property (nonatomic) NSString *bridge;
但是当我尝试使用eventDispatcher
时,它会给我以下内容:
答案 0 :(得分:3)
使用initialProperties
启动应用时,您可以传递一些数据。我认为这是您案例中最好的解决方案。您可以在RCTRootView
上传递令牌,然后从props
抓取它。 RN docs中有一个很好的例子。
或者,您可以使用嵌入数据send an event。