Front-End/React-Native

[React-Native] ์„ธ๋กœ ๋ชจ๋“œ ๊ณ ์ • (ํ™”๋ฉด ํšŒ์ „ ๋ง‰๊ธฐ, ๊ฐ€๋กœ ๋ชจ๋“œ ๋ง‰๊ธฐ)

Bigone17 2024. 6. 22. 14:54

๐ŸŸก ํ™”๋ฉด ํšŒ์ „์ด ์•ˆ๋˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์–ด์š”!

์„œ๋น„์Šคํ•˜๊ณ  ์‹ถ์€ ์–ดํ”Œ์ด ์„ธ๋กœ ๋ชจ๋“œ๋งŒ ๋˜๊ฒŒ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ, ํ™”๋ฉด ํšŒ์ „์„ ํ•˜๋ฉด์„œ UI๊ฐ€ ๊นจ์ง€๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ, RN ๊ธฐ์ค€์œผ๋กœ ํ™”๋ฉด ํšŒ์ „์„ ๋ง‰๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๐ŸŸก IOS๐Ÿ“ฑ

1. ios/.../Info.plist ํŒŒ์ผ ์˜คํ”ˆ

2. ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •์„ ์ถ”๊ฐ€

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>

 

๐ŸŸก  Android ๐Ÿค–

1. android/app/src/main/AndroidManifest.xml ํŒŒ์ผ ์˜คํ”ˆ

2. ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •์„ ์ถ”๊ฐ€

<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait"
    ...>
    ...
</activity>

 

์œ„ ์ฝ”๋“œ๋“ค์„ ์ˆ˜์ •ํ•ด ์ฃผ๊ณ , ์–ดํ”Œ์„ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ํ™”๋ฉด ํšŒ์ „์ด ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค.

 

๐ŸŸก ๋งŒ์•ฝ ์ œํ’ˆํ™˜๊ฒฝ์—์„œ๋Š” ํ™”๋ฉด ํšŒ์ „์„ ๋ง‰์ง€๋งŒ, ๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ๋Š” ํ™”๋ฉด ํšŒ์ „์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?

๐ŸŸฃ IOS

1.  Info.plist ํŒŒ์ผ์— ์œ„์—์„œ ์ถ”๊ฐ€ํ•œ ์ฝ”๋“œ ์‚ญ์ œํ•˜๊ธฐ

2. AppDelegate.m ํŒŒ์ผ ์˜คํ”ˆ ํ›„ ์ฝ”๋“œ ์ถ”๊ฐ€

#import "AppDelegate.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSURL *jsCodeLocation;

  #ifdef DEBUG
    jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
  #else
    jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
  #endif

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"YourAppName"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];

  return YES;
}

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
  #ifdef DEBUG
    return UIInterfaceOrientationMaskAll;
  #else
    return UIInterfaceOrientationMaskPortrait;
  #endif
}

@end

 

๐ŸŸฃ Android

1. AndroidManifest.xml ํŒŒ์ผ์— ์œ„์—์„œ ์ถ”๊ฐ€ํ•œ ์ฝ”๋“œ ์‚ญ์ œ

2. MainActivity.java ์˜คํ”ˆ ํ›„ ์ˆ˜์ •

package com.yourapp;

import com.facebook.react.ReactActivity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;

public class MainActivity extends ReactActivity {

  @Override
  protected String getMainComponentName() {
    return "YourAppName";
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (BuildConfig.DEBUG) {
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
    } else {
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
  }
}

 

 

๐Ÿ“ ์ •๋ฆฌ 

1. ์„ธ๋กœ ๋ชจ๋“œ๋กœ ๊ณ ์ •ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •

2. ios -> Info.plist ์ˆ˜์ •

3. android -> AndroidManifest.xml ์ˆ˜์ •

4. ๋””๋ฒ„๊ทธ ๋ชจ๋“œ์™€ ์‹ค์ œ ๋ชจ๋“œ๋ฅผ ๋‚˜๋ˆ ์„œ ์ปจํŠธ๋กคํ•  ๊ฒฝ์šฐ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๊ณณ์ด ๋‹ค๋ฆ„

 

 

๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) 
ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ๋ง๋ถ™์ผ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์„ธ์š”!
์ œ ๊ธ€์ด ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์ฝ์œผ์‹  ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค
๋‹ค์Œ ํŽธ์— ๋ดฌ์š”~

 
728x90
๋ฐ˜์‘ํ˜•