(iOS) background/foreground, RemoteNotification ๊ตฌ๋ณํ๊ธฐ
์ ๋ชฉ์ด ์ข ๋๊ฐํ๋ฐ;; ์ํฉ์ ์ด๋ ๊ฒ Remote Notification์ ๋ง ๊ทธ๋๋ก ์๊ฒฉ์ง์์ ์๋์ด ์ค๋๊ฒ์ธ๋ฐ ์ ํ์ ๊ฒฝ์ฐ APNS๋ฅผ ํตํด์ ์ด๋ฃจ์ด ์ง๋๋ฐ, ์ฑ์ ์ ์ฅ์์ ๋ณด๋ฉด Remote Notification ์ ๋ฐ๋ 2๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์๋ค.ย
1. ์ฑ์ด ์ผ์ ธ ์๋ ์ํ์์ Remote Notification์ด ์ค๋ ๊ฒฝ์ฐ(foreground)
2. ์ฑ์ด ๊บผ์ ธ ์๋ ์ํ์์ Remote Notification์ด ์ค๋ ๊ฒฝ์ฐ(background)
์ด ๋๊ฒฝ์ฐ๊ฐย ๊ฐ์ฅ ํฐ ๋ค๋ฅธ์ ์ย ์ฑ์ด foreground ์ ์๋ 1๋ฒ์ ๊ฒฝ์ฐ, ์ดํด๋ณด๋ฉด ์๋ฆผ์ด ์ค๊ธด ํ์ง๋ง ํ์ ์ด๋ ํ๋ฉด ์๋จ์ ํ์๋์๋ค๊ฐ ๋ค์ด๊ฐ๋ ์์ผ๋ก ๋์ํ์ง ์๋๋ค. ๋ผ์ธ(Line) ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฑํ ์ฐฝ์ ์๋ ๊ฒฝ์ฐ back๋ฒํผ์ (1) ์ด๋ฐ์์ผ๋ก ํ์๊ฐ ๋๋ค. ๋น์ฐํ background ์์๋ ํ์ ์ด๋ ์๋จ ํ์๊ฐ ๋๋ค. ย ๋ํ๋์ ๋ค๋ฅธ ์ ์ ์ฑ์ด foreground์ ์๊ธฐ ๋๋ฌธ์ ์๋ฆผ์ ์ํ json ์์ ์ง์ ํ sound๊ฐ ๋ฐ์๋์ง ์๋๋ค. ์ด๋๋ foreground ์ฑ์์ ๋ฐ๋ก ํ์ํ๋ค๋ฉด sound๋ฅผ ์ฌ์ํด ์ฃผ์ด์ผ ํ๋ค.ย
๊ทธ๋ฐ๋ฐ background ์์ ์๋ฆผ์ด ์๊ณ ์ฌ์ฉ์๊ฐ ํฐ์น๋ฅผ ํ๋ฉด ์ฑ์ด ์ผ์ง๋๋ฐ ์ด ์ํ์์ ์ฑ์ด Remote Notification ์ ๋ฐ๋ delegate๋ ์๋์ ๊ฐ์๋ฐ foreground ์์๋ ์๋์ ๋ฉ์๋์ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค.ย
โ (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
๊ทธ๋ฌ๋ค ๋ณด๋ ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ์๋ฅผ๋ค๋ฉด, Remote Notification ์ด ์์๋ ์ด๋ค ์๋ฆฌ๋ฅผ ์ฌ์ํด์ค์ผ ํ๋ค๊ณ ํ ๋ json ์ย sound ์ง์ ๋๊ฒ์ iOSย ์์ ์ฌ์์ด ๋๊ณ , foreground ์์๋ iOS ๊ฐ json์ sound์์ ์ฌ์ํด์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ sound๋ฅผ ๋ฐ๋ก ์ฌ์์ ํด์ฃผ๋๋ฐ ๋ฌธ์ ๋ background ์์ ์๋ฆผ์ด์์ ๋๋ฌ์ ๋ค์ด๊ฐ๋๋ ์ด sound๊ฐ ๋ค์ ์ฌ์์ด ๋๋ค๋ ๊ฒ์ด๋ค.ย
๊ทธ๋์ ์ค์ํ ๋ถ๋ถ์ background ์์ ์๋ฆผ์ด ์์๋ ์ฌ์ฉ์๊ฐ ์๋ฆผ์ ๋๋ฌ์ ์ฑ์ ๋ค์ด์์ ์๋ฆผ์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ foreground ์์ ์๋ฆผ์ด ์์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌ๋ณํด ์ฃผ์ด์ผ ํ๋ค. ์๋์ ์ฝ๋๋ฅผ ๋ณด์.
ํฌ๊ฒ ๋ค๋ฅธ๊ฒ์ ์๋๋ฐ ์ค์ํ ๋ถ๋ถ์ ์ฑ์ด background ์ ์๊ฑฐ๋ ์ข
๋ฃ๋์๋ค๊ฐ ์คํ๋๋ ๊ฒฝ์ฐ์๋, UIApplication ์ applicationState
๊ฐ UIApplciationStateInActive
์ํ๋ผ๋ ๊ฒ์ด๊ณ foreground ๋ ๋น์ฐํ UIApplciationStateActive
์ํ๋ผ๋ ๊ฒ์ด ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ค. ๊ทธ๋์ ํด๋น ๋ฉ์๋์์ application.applicationState
๋ก ๊ตฌ๋ถํด ์ฃผ๋ฉด ๋๋ค.ย
๋ค๋ฅธ ๊ฒฝ์ฐ ๊ฐ ์ข๋ ์์์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ, ์ผ๋จ์ ์ฑ์ applicationState
๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํ ์ ์์๋ค. ๋ณด๋ค ์ข์ ๋ฐฉ๋ฒ์ด๋ ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด ๋๊ธ๋ฌ์ ์ฃผ์๊ธธ. ์๋๋ฉด ์์ gist๋ฅผ ์์ ํด ์ฃผ์๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ผ๋ฏ.^^