react-native-navigation的迁移库

RNN.m 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #import "RNN.h"
  2. #import "RNNEventEmitter.h"
  3. #import "RCTBridge.h"
  4. @interface RNN()
  5. @end
  6. @implementation RNN {
  7. RCTBridge* bridge;
  8. }
  9. +(instancetype)instance
  10. {
  11. static RNN *sharedInstance = nil;
  12. static dispatch_once_t onceToken = 0;
  13. dispatch_once(&onceToken,^{
  14. if (sharedInstance == nil)
  15. {
  16. sharedInstance = [[RNN alloc] init];
  17. }
  18. });
  19. return sharedInstance;
  20. }
  21. +(id<UIApplicationDelegate>)appDelegate
  22. {
  23. return UIApplication.sharedApplication.delegate;
  24. }
  25. -(void)init:(NSURL *)jsCodeLocation launchOptions:(NSDictionary *)launchOptions
  26. {
  27. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onBridgeFinishedLoading) name:RCTJavaScriptDidLoadNotification object:nil];
  28. // this will load the JS bundle
  29. bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation moduleProvider:nil launchOptions:launchOptions];
  30. }
  31. -(void)onBridgeFinishedLoading
  32. {
  33. [[bridge moduleForClass:[RNNEventEmitter class]] sendEventWithName:RNNEventOnAppLaunched body:nil];
  34. }
  35. -(RCTBridge *)bridge
  36. {
  37. return bridge;
  38. }
  39. @end