Android 기초 μ„€μ •

ν‘Έμ‹œλ©”μ„Έμ§€ λ°œμ†‘μ„ μœ„ν•œ Android OS μ—μ„œ ν•„μˆ˜λ‘œ μ„€μ •ν•΄ μ£Όμ…”μ•Ό ν•˜λŠ” κ°€μ΄λ“œμž…λ‹ˆλ‹€.

κ°€μž₯ λ¨Όμ € ν‘Έμ‹œ λ°œμ†‘μ„ μœ„ν•œ ν•„μˆ˜ 섀정을 μœ„ν•΄ μ•„λž˜μ˜ 두 κ°€μ§€λ₯Ό μˆœμ„œλŒ€λ‘œ μ§„ν–‰ ν•΄ μ£Όμ„Έμš”.

  1. FCM μΈμ¦μ„œ μ„€μ •

  1. λŒ€μ‹œλ³΄λ“œ μ„€μ •

SDK μ„€μΉ˜

ν”„λ‘œμ νŠΈ build.gradle

ν”„λ‘œμ νŠΈμ˜ build.gradle ( root 파일 ) 에 μ•„λž˜μ™€ 같이 repository μ£Όμ†Œλ₯Ό μΆ”κ°€ν•΄μ£Όμ„Έμš”.

Android 13 μ΄μƒμ˜ λ²„μ „μ—μ„œ ν‘Έμ‹œ μ•Œλ¦Ό κΆŒν•œ νšλ“μ„ μœ„ν•œ μ„€μ •

ν”„λ‘œμ νŠΈ μˆ˜μ€€ ν˜Ήμ€, app μˆ˜μ€€ "build.gradle"의 "targetSdkVersion = 33" 이상이어야 ν•©λ‹ˆλ‹€.

appλͺ¨λ“ˆ build.gradle

ν”„λ‘œμ νŠΈμ˜ app/build.gradle νŒŒμΌμ— μžˆλŠ” dependencies에 μ•„λž˜μ™€ 같이 Wisetracker SDKλ₯Ό μΆ”κ°€ν•΄μ£Όμ„Έμš”.

이 λ•Œ, Java와 Kotlin에 따라 μ΄μš©ν•˜λŠ” λͺ¨λ“ˆλͺ…이 λ‹¬λΌμ§‘λ‹ˆλ‹€.

AuthorizationKey 등둝

app/res/values/strings.xml

ν”„λ‘œμ νŠΈμ˜ app/res/values/strings.xml νŒŒμΌμ— μ•„λž˜ μ½”λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. μΆ”κ°€ν•œ μ½”λ“œ 쀑 3번 라인 serviceNumber의 valueλ₯Ό μ˜¬λ°”λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μΆ”κ°€ν•œ μ½”λ“œ 쀑 serviceNumber의 valueλ₯Ό μ˜¬λ°”λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ™€μ΄μ¦ˆνŠΈλž˜μ»€ λŒ€μ‹œλ³΄λ“œμ— λ‘œκ·ΈμΈν•˜μ—¬ μ„€μ • > μ„œλΉ„μŠ€μ„€μ • λ©”λ‰΄μ—μ„œ 'μ„œλΉ„μŠ€λ²ˆν˜Έ' ν•­λͺ©μ— 기재된 숫자λ₯Ό 확인 ν›„ λ³΅μ‚¬ν•˜μ—¬ serviceNumber 값을 λ³€κ²½ ν•΄ μ£Όμ„Έμš”.

μ„œλΉ„μŠ€λ²ˆν˜Έ 확인

HTTP 톡신 ν—ˆμš©

ν”„λ‘œμ νŠΈμ˜ Target APIκ°€ API Level 28 이상일 κ²½μš°μ— μ μš©ν•˜λŠ” μ„€μ •μž…λ‹ˆλ‹€. μ•„λž˜μ™€ 같이 HTTP 톡신을 ν—ˆμš©ν•˜λŠ” 두 κ°€μ§€ 섀정을 μΆ”κ°€ν•΄μ£Όμ„Έμš”. μž‘μ„±λ˜μ–΄ μžˆλŠ” μ½”λ“œμ—, μ•„λž˜ ν•œ 쀄 짜리 networkSecurityConfig μ½”λ“œλ₯Ό λ³΅μ‚¬ν•˜μ—¬

<application androidname = > μ•ˆμ— λΆ™μ—¬λ„£κΈ° ν•˜λ©΄ μ•„λž˜ μ΅œμ’… μ½”λ“œμ™€ 같은 λͺ¨μ–‘이 λ©λ‹ˆλ‹€.

app/res/xml/network_security_config.xml μ„€μ •

  1. network_security_config.xml νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€.

  2. λ‘œμ»¬μ—μ„œ κ°œλ°œν•˜λŠ” κ²½μš°μ—λŠ” μ•„λž˜μ™€ 같이 둜컬 κ°œλ°œν™˜κ²½μ„ μΆ”κ°€ν•΄μ•Ό metro server와 톡신할 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. 둜컬 ν™˜κ²½μ„ μΆ”κ°€ ν•œ ν›„, xml νŒŒμΌμ— μ™€μ΄μ¦ˆνŠΈλž˜μ»€ 도메인을 μΆ”κ°€ ν•΄ μ£Όμ„Έμš”.

  1. trk.analytics.wisetracker.co.kr ▢️ 도메인을 μΆ”κ°€ ν•΄ μ£Όμ‹œλ©΄ μ™€μ΄μ¦ˆνŠΈλž˜μ»€ SDK 톡신이 κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.

ν‘Έμ‹œμ•Œλ¦Ό κΆŒν•œ μ„€μ • (AndroidManifest.xml)

"android.permission.POST_NOTIFICATIONS" κΆŒν•œμ„ μΆ”κ°€ν•©λ‹ˆλ‹€. 이 κΆŒν•œ 섀정은 <application> νƒœκ·Έ μœ„μ—μ„œ μ„ μ–Έν•©λ‹ˆλ‹€.

μ΄ˆκΈ°ν™”

Application을 μƒμ†λ°›λŠ” ν΄λž˜μŠ€κ°€ μ•„λ‹Œ Activityλ₯Ό μƒμ†λ°›λŠ” κΈ°λ³Έ ν™”λ©΄μ˜ onCreate() ν•¨μˆ˜μ— μ μš©ν•΄ μ£Όμ„Έμš”. μ—¬κΈ°μ„œ λ§ν•˜λŠ” κΈ°λ³Έ 화면은 AndroidManifest.xml νŒŒμΌμ— μ„ μ–Έλœ Activity 쀑, "android.intent.action.MAIN" κ³Ό "android.intent.category.LAUNCHER" Intent-Filter κ°€ 적용된 Activityλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

Application을 μƒμ†λ°›λŠ” ν΄λž˜μŠ€κ°€ μ•„λ‹Œ Activityλ₯Ό μƒμ†λ°›λŠ” κΈ°λ³Έ ν™”λ©΄μ˜ onCreate() λ©”μ˜λ“œμ— μ μš©ν•΄ μ£Όμ„Έμš”

Bridge파일 μΆ”κ°€

λ§ˆμ§€λ§‰μœΌλ‘œ bridge ν•¨μˆ˜λ“€μ„ 호좜 ν•  수 있게 bridge νŒŒμΌμ„ μΆ”κ°€ ν•©λ‹ˆλ‹€.

μ™Όμͺ½μ΄λ―Έμ§€λŠ” μ•žμ„œ μ„€λͺ…λ“œλ¦° 쀀비사항 μ•ˆλ‚΄νŽ˜μ΄μ§€μ—μ„œ ν”ŒλŸ¬κ·ΈμΈ λ‹€μš΄λ‘œλ“œμ‹œ 생긴 DotReactNativeBridge 폴더 ν•˜μœ„μ— μžˆλŠ” "kr"ν΄λ”μ˜ μœ„μΉ˜λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

ν•΄λ‹Ή kr 폴더λ₯Ό λ³΅μ‚¬ν•œ λ’€ , 였λ₯Έμͺ½μ— λ³΄μ΄λŠ” ν˜„ ν”„λ‘œμ νŠΈ ν΄λ”μ˜ /ν”„λ‘œμ νŠΈλͺ…/android/app/src/main/java κ²½λ‘œμ— λ³΅μ‚¬ν•œ "kr" 폴더λ₯Ό λΆ™μ—¬λ„£κΈ° ν•©λ‹ˆλ‹€.

DotReactBridge 객체 NativeModules 등둝

파일 μΆ”κ°€ ν›„ MainApplication.java νŒŒμΌμ— Wisetracker SDK BridgePackageλ₯Ό μΆ”κ°€ ν•΄ μ€λ‹ˆλ‹€.

μ•ˆλ“œλ‘œμ΄λ“œ κΈ°μ΄ˆμ„€μ •μ€ μ™„λ£Œν•˜μ…¨μŠ΅λ‹ˆλ‹€ πŸŽ‰

λ‹€μŒμœΌλ‘œ iOS κΈ°μ΄ˆμ„€μ •μ„ μœ„ν•œ 단계λ₯Ό μ§„ν–‰ ν•΄ μ£Όμ„Έμš” πŸ‘‡πŸ»

Last updated

Was this helpful?