React-native-onesignal: didReceiveRemoteNotification์ด AppDelegate.m์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2018๋…„ 10์›” 30์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: OneSignal/react-native-onesignal

์„ค๋ช…:

Freschat SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AppDelegate.m ๋‚ด์—์„œ ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ onesignal ์„œ๋น„์Šค ํ™•์žฅ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ

  1. ์–ด๋–ค ๋ฒ„์ „์˜ OneSignal React-Native SDK๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? 3.2.7
  2. ํ”„๋กœ์ ํŠธ(์˜ˆ: npm) npm์— SDK๋ฅผ ์–ด๋–ป๊ฒŒ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋ฌธ์ œ ์žฌํ˜„ ๋‹จ๊ณ„:

  • npm์„ ์‚ฌ์šฉํ•˜์—ฌ OneSignal SDK๋ฅผ ํ”„๋กœ์ ํŠธ์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  • iOS AppDelegate์—์„œ SDK ์ดˆ๊ธฐํ™”
  • ํ‘ธ์‹œ ์•Œ๋ฆผ ์ˆ˜์‹  ์‹œ๋„
  • ๊ธฐํƒ€:

    (ํฌ๋ž˜์‹œ ์Šคํƒ ์ถ”์  ๋ฐ ๊ธฐํƒ€ ์ •๋ณด๋Š” ์—ฌ๊ธฐ์— ์žˆ์Œ)

    ๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

    ์—ฌ๊ธฐ์— (๋งค์šฐ) ์‘๋‹ต์ด ๋Šฆ์–ด์„œ ์ฃ„์†กํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ์šฐ์„  application:didReceiveRemoteNotification: ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  application:didReceiveRemoteNotification:fetchCompletionHandler: ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•Œ๋ฆผ์„ ๋ฐ›์•˜์„ ๋•Œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด UNUserNotificationCenterDelegate ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์•Œ๋ฆผ ์„œ๋น„์Šค ํ™•์žฅ์€ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์šฉ๋„์— UNUserNotificationCenterDelegate , ํŽธ์ง‘ AppDelegate.h ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค :

    #import <UserNotifications/UserNotifications.h>
    

    ๊ทธ๋Ÿฐ ๋‹ค์Œ AppDelegate ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ UNUserNotificationCenterDelegate ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    <strong i="18">@interface</strong> AppDelegate : UIResponder <UIApplicationDelegate, UNUserNotificationCenterDelegate>
    

    ์—์„œ AppDelegate.m ๋‚ด๋ถ€์˜ didFinishLaunchingWithOptions: ๋ฐฉ๋ฒ•, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์„ ์ถ”๊ฐ€ํ•œ๋‹ค :

    UNUserNotificationCenter.currentNotificationCenter.delegate = self;
    

    ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ฆผ์ด ์ˆ˜์‹ ๋  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ๋‹ค์Œ ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    -(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
      //do stuff
    }
    

    SDK์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ข…๋ฃŒ

    ๋ชจ๋“  4 ๋Œ“๊ธ€

    @nitish1099 "์›์‹œ๊ทธ๋„ ์„œ๋น„์Šค ํ™•์žฅ์ด ์•ˆ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค"๋Š”

    ๋˜ํ•œ Freschat์˜ SDK๋Š” ๋น„๊ณต๊ฐœ ์†Œ์Šค์ด๋ฏ€๋กœ ๋ถˆํ–‰ํžˆ๋„ ๋น„ํ˜ธํ™˜์„ฑ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ์ธก๋ฉด์—์„œ ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ SDK๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด AppDelegate ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๊นŒ?

    ์•Œ๋ฆผ ์ด๋ฒคํŠธ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ์ˆ˜์‹ ํ•˜๋ ค๋ฉด ๋Œ€์‹  UNUserNotificationCenterDelegate ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    @Nightsd01 ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์•Œ๋ฆผ ์„œ๋น„์Šค ํ™•์žฅ์ด didReceiveRemoteNotification์„ ์žฌ์ •์˜ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”? ๋˜ํ•œ UNUserNotificationCenterDelegate๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ด๋“œ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    @Nightsd01 ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

    ์—ฌ๊ธฐ์— (๋งค์šฐ) ์‘๋‹ต์ด ๋Šฆ์–ด์„œ ์ฃ„์†กํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ์šฐ์„  application:didReceiveRemoteNotification: ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  application:didReceiveRemoteNotification:fetchCompletionHandler: ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•Œ๋ฆผ์„ ๋ฐ›์•˜์„ ๋•Œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด UNUserNotificationCenterDelegate ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์•Œ๋ฆผ ์„œ๋น„์Šค ํ™•์žฅ์€ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์šฉ๋„์— UNUserNotificationCenterDelegate , ํŽธ์ง‘ AppDelegate.h ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค :

    #import <UserNotifications/UserNotifications.h>
    

    ๊ทธ๋Ÿฐ ๋‹ค์Œ AppDelegate ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ UNUserNotificationCenterDelegate ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    <strong i="18">@interface</strong> AppDelegate : UIResponder <UIApplicationDelegate, UNUserNotificationCenterDelegate>
    

    ์—์„œ AppDelegate.m ๋‚ด๋ถ€์˜ didFinishLaunchingWithOptions: ๋ฐฉ๋ฒ•, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์„ ์ถ”๊ฐ€ํ•œ๋‹ค :

    UNUserNotificationCenter.currentNotificationCenter.delegate = self;
    

    ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ฆผ์ด ์ˆ˜์‹ ๋  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ๋‹ค์Œ ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    -(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
      //do stuff
    }
    

    SDK์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ข…๋ฃŒ

    ์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
    0 / 5 - 0 ๋“ฑ๊ธ‰