Rect Nativeでダークモードを無効にする
検証環境
$ react-native -v react-native-cli: 2.0.1 react-native: 0.67.3
実装
iOS
ios/{project}/AppDelegate.m
を以下のように修正する
@implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 省略 // ↓追加 if (@available(iOS 13, *)) { self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; } return YES; }
※iOS13以下を切るならif文要らないかも
Android
android/app/src/main/java/path/to/project/MainApplication.java
を以下のように修正する
// ↓追加 import androidx.appcompat.app.AppCompatDelegate; // 省略 public class MainApplication extends Application implements ReactApplication { // 省略 @Override public void onCreate() { super.onCreate(); SoLoader.init(this, /* native exopackage */ false); initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); // 追加 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); }
最後に
ダークモード対応してるアプリすごい。