[RN] reactnative-wifi-reborn 으로 wifi 연동 앱 매뉴얼

suwoncityboyyy·2024년 7월 2일
0

android

제일 먼저 react-native-permissions 설치하기 (expo-location으로 대체 가능)

$ npm install --save react-native-permissions

android/app/src/main/AndroidManifest.xml에 코드 추가

   <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" /> 
    <uses-permission android:name="android.permission.INTERNET" />

rn 에서 코드 작성

if (Platform.OS === 'android') {
      try {
        const granted = await PermissionsAndroid.request(
          PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
          {
            title: 'Location Permission',
            message:
              'This app needs access to your location ' +
              'so we can know where you are.',
            buttonNeutral: 'Ask Me Later',
            buttonNegative: 'Cancel',
            buttonPositive: 'OK',
          },
        );
        if (granted === PermissionsAndroid.RESULTS.GRANTED) {
          console.log('You can use the location');
        } else {
          console.log('Location permission denied');
        }
      } catch (err) {
        console.warn(err);
      }
    }

그리고 라이브러리 다운 ㄱㄱ 끝임

npm install react-native-wifi-reborn --save

ios

podfile에 코드 복붙 (rn 0.72 이상일 시 ) 이하일 시 공식문서 참고

def node_require(script)
  # Resolve script with node to allow for hoisting
  require Pod::Executable.execute_command('node', ['-p',
    "require.resolve(
      '#{script}',
      {paths: [process.argv[1]]},
    )", __dir__]).strip
end

# Use it to require both react-native's and this package's scripts:
node_require('react-native/scripts/react_native_pods.rb')
node_require('react-native-permissions/scripts/setup.rb')

platform :ios, min_ios_version_supported
prepare_react_native_project!

setup_permissions([
  'LocationWhenInUse'
])

infoplst에 아래와같이 ㄱ

    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>Application requires user’s location for better user experience.</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>Application requires user’s location for better user experience.</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Application requires user’s location for better user experience.</string>

일단 위치권한은 끝
다음 wifi-reborn 설정

중요

xcode 들어가서 .workspace 들어 간 후 Signing & Capabilities ㄱㄱ

Signing & Capabilities 탭바 아래 + Capability 버튼 코딱지만한거 있음 클릭ㄱ

Hotspot Configuration 및 Wireless Accessories Configuration 각각 검색 후 추가 하셈

clean build 싹 해주고
다시 리빌드 ㄱㄱ 그럼 됨

참고자료

공식문서 1 (rnwifireborn)
https://github.com/JuanSeBestia/react-native-wifi-reborn
공식문서 2 (rn permisions)
https://github.com/zoontek/react-native-permissions

profile
귀차나ㅣ

0개의 댓글