有没有办法在我的应用程序委托中调用本机模块接口?

时间:2019-10-30 03:31:34

标签: ios objective-c react-native react-native-ios

我是ios开发的新手,我正在尝试将我的本机模块中的Spotify SDK用于我的react本机项目。我在这里https://developer.spotify.com/documentation/ios/quick-start/objective-c/#configure-info-plist遵循了该教程,但是我正在没有应用程序延迟的本机模块中实现它。我需要从我的主要项目App委托中调用界面的函数,但这不起作用。

我尝试创建一个共享实例来访问接口,但是每次获得实例时,它们都位于不同的内存位置,并且第二个始终为null。

在AppDelegate.m中,我正在获取控制器接口的共享实例,以便将结果返回到该实例。

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  return [[RNSpotifyController sharedInstance]application:app
                                                       openURL:url
                                                       options:options];

在我的RNSpotifyController.m中,

- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{

    NSLog(@"%@ %@", url, options);



//    return [self.sessionManager application:RCTSharedApplication() 
    return [self.sessionManager application:application openURL:url options:options];
}

+ (RNSpotifyController *)sharedInstance
{
  static RNSpotifyController *_sharedInstance;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    _sharedInstance = [[self alloc] init];
  });
  return _sharedInstance;
}

我希望每当我获得一个共享实例时,它将与所有其他实例相同,但事实并非如此。我只需要能够从我的应用程序委托中调用接口的方法。共享实例不同于初始化的初始接口。让我知道是否还有其他代码会有所帮助

0 个答案:

没有答案