Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 反应本机-打开设置应用程序时本机iOS模块崩溃_React Native_React Native Ios - Fatal编程技术网

React native 反应本机-打开设置应用程序时本机iOS模块崩溃

React native 反应本机-打开设置应用程序时本机iOS模块崩溃,react-native,react-native-ios,React Native,React Native Ios,我正在尝试创建一个简单的React本机模块,它允许我从React本机应用程序中打开iOS设置应用程序 我的实施: #import <UIKit/UIKit.h> #import "RNOpenAppSettings.h" @implementation RNOpenAppSettings - (dispatch_queue_t)methodQueue { return dispatch_queue_create("com.krazylabs.RNOpenAppSettin

我正在尝试创建一个简单的React本机模块,它允许我从React本机应用程序中打开iOS设置应用程序

我的实施:

#import <UIKit/UIKit.h>
#import "RNOpenAppSettings.h"

@implementation RNOpenAppSettings

- (dispatch_queue_t)methodQueue
{
    return dispatch_queue_create("com.krazylabs.RNOpenAppSettings", DISPATCH_QUEUE_SERIAL);
}

RCT_EXPORT_MODULE(OpenAppSettings)

RCT_EXPORT_METHOD(open){
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}

@end
上述操作确实打开了iOS设置应用程序,但随后几乎立即崩溃。我的第一个假设是,可能操作花费的时间太长,阻塞了React本机队列;这就是为什么我要创建一个单独的队列。这没有帮助


有人遇到过这个问题吗?

我可以通过使用GCD异步调用openURL来解决这个问题。希望这能帮助其他人

#import <UIKit/UIKit.h>
#import "RNOpenAppSettings.h"

@implementation RNOpenAppSettings

RCT_EXPORT_MODULE(OpenAppSettings)

RCT_EXPORT_METHOD(open){
    dispatch_async(dispatch_get_main_queue(), ^{
          [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    });
}

@end