【问题标题】:React Native - Native iOS module crashes when opening Settings appReact Native - 打开设置应用程序时原生 iOS 模块崩溃
【发布时间】:2017-06-05 16:53:55
【问题描述】:

我正在尝试创建一个简单的 React Native 模块,它允许我从 React Native 应用程序中打开 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 Native 队列;这就是为什么我要创建一个单独的队列。这没有帮助。

有人遇到过这种情况吗?

【问题讨论】:

    标签: react-native react-native-ios


    【解决方案1】:

    我能够通过使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多