仅为AppDelegate.m iOS中的第一次启动设置特定方向

仅为AppDelegate.m iOS中的第一次启动设置特定方向,ios,swift,react-native,orientation,screen-orientation,Ios,Swift,React Native,Orientation,Screen Orientation,我正在将此库用于我的react本机项目: 我试图实现的是在除一个屏幕外的所有屏幕上锁定方向以绘制肖像。除了用户在横向模式下关闭应用程序,然后尝试在横向模式下打开应用程序外,此库工作正常。在很短的一段时间内,应用程序以横向模式打开,然后旋转到纵向模式。但我不想看到这一点,相反,我想在应用程序启动时以纵向模式打开它 - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOri

我正在将此库用于我的react本机项目:

我试图实现的是在除一个屏幕外的所有屏幕上锁定方向以绘制肖像。除了用户在横向模式下关闭应用程序,然后尝试在横向模式下打开应用程序外,此库工作正常。在很短的一段时间内,应用程序以横向模式打开,然后旋转到纵向模式。但我不想看到这一点,相反,我想在应用程序启动时以纵向模式打开它

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {

   /*if (the app has just been launched) {
        return UIInterfaceOrientationMaskPortrait;
   }*/

   // else, use the library to manage and set orientation
   return [Orientation getOrientation];
}

我不知道如何检查第一次启动以及如何在上面的if语句中输入内容。native orientations是检测和设置设备方向的一个非常好的库。如您所见,文档中有一个属性用于解锁所有方向。ie;方向。解锁Allorientations()

您可以在componentWillUnmount/获取应用程序的当前状态中使用该函数,如果该函数转到后台,则调用该函数,否则它将强制解锁所有方向,然后您可以在主文件(如app.js)的ComponentDid装载中将方向设置为potrait

componentDidMount(){


Orientation.lockToPortrait();//您只需检查UserDefaults中的某些条目,如果它不包含您提供的对象,则首先启动它。然后您可以将此对象放入UserDefaults中

e、 g


感谢@saikiran的回复。这是我已经在做的。但它不起作用。当我启动应用程序时,它以横向模式开始,然后旋转到纵向模式。问题是,关闭应用程序不会调用
组件将卸载
确定,然后在渲染视图之前打开应用程序时,使用构造函数或c更新方向组件安装根据您的建议,安装后第一次启动应用程序时,此操作有效。但这不适用于关闭应用程序并再次打开。如果我错了,请更正我。谢谢!!
    Orientation.lockToPortrait(); // <----- This will reset stuff before the first unlock
}

componentWillUnmount() {
    Orientation.unlockAllOrientations();
    Orientation.lockToPortrait();
}
if([[NSUserDefaults standardUserDefaults] boolForKey:@"SOME_YOUR_KEY"] == nil) {
    // First faunch Code
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SOME_YOUR_KEY"];
    [[NSUserDefaults standardUserDefaults] synchronize];
} else {
    // Not first launch
}