반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


Posted on . Written by


수요일 FAQ 시간이죠. 이제 코로나에서도 안드로이드 기기의 Local Notification 을 지원하게 됐죠. 오늘은 이와 관련돼서 자주 문의 되는 질문을 다루겠습니다.


1. How do I detect that a local notification occurred.


Local notification 를 감지하는 방법에는 두가지가 있습니다. 예를 들어 앱이 running 혹은  suspended 이고 유저가 notification을 tap 했다면 여러분 앱의 notification listener 가 fire 될 겁니다. 만약 앱이 exited (applicationExit) 상태이고 notification이 fire 된다면 notification 이 앱을 open 하고 launchArgs.notification parameter 를 set 할 겁니다. 여러분은 코드 내에서 그 notification parameter 를 set 하시고 notification 리스너를 call 하셔야 합니다. (왜냐하면 앱이 시작할 때 이것을 자동으로 call 하지 않거든요.)


local launchArgs = ...      -- at the top of your program code

local function notificationListener( event )
    -- Handle Local Notification here
end


여러분 앱이 유저가 notification event를 touching 해서 앱이 시작했는지 여부를 알아낼 수 있는 코드가 아래에 있습니다.


 if launchArgs and launchArgs.notification then
     -- Need to call the notification listener since it won’t get called if the
     --the app was already closed.
     notificationListener( launchArgs.notification )
 end


notification listener 에서 event.applicationState는 유저에 의해 norification 이 involve 됐을 경우 앱의 상태를 나타냅니다. “active”는 앱이 running 될 때 notification 이 fire 된 것을 의미합니다. 그리고 “inactive”는 notification 이 앱이 suspended 혹은 closed 됐을 때 fire 됐음을 의미합니다.





2. How do I detect that a user ignored a local notification?


답은 그렇게 할 수 없다 입니다. 만약 유저가 notification을 delete (or ignores) 했다면 notification listener 는 call 이 되지 않을 겁니다. 그리고 여러분의 앱은 그게 fire 되지 않으니까 그게 ignored 됐는지도 알 수 없습니다. (여러분 앱은 계속 notification schedule 을 track 할 겁니다. 그리고 notification 이 fire 되면 그 때 알겁니다.)


3. What are the differences between local notifications in iOS and Android?


iOS와 Android 의 가장 큰 다른 점은 “badge.” 입니다. 그건 iOS device 에서 앱 아이콘에 표시되는 숫자인데요 notification 이 fire 되면 표시됩니다. 일지 않은 메세지의 갯수를 표시하게 되죠. 그 값과 의미는 앱에 의해 정의됩니다. 안드로이드는 이 badge number 를 이용하지 않습니다.


4. How do I update the badge number in iOS?


badge number 는 notification 이 fire 됐을 때 세팅됩니다. 혹은 아래 코드를 사용해서 update 할 수도 있는데요. 이 코드는 현재의 badge 값을 읽어서 숫자를 증가시키는 겁니다.


local badge = native.getProperty( "applicationIconBadgeNumber" )
badge = badge + 1
native.setProperty( "applicationIconBadgeNumber", badge )



이렇게 함으로서 notification이 fire 됐을 때 badge number를 무엇으로 할 건지 정할 수 있습니다. 일반적으로 각 notification 에 대해 badge number 를 increment 하죠. 이 badge number 를 clear 하시려면 native.setProperty 를 call 해서 badge 값을 0으로 하시면 됩니다.


5. Is there any examples using Local Notifications?


최근에 릴리즈된 CoronaSDK (build 971) 에 Local Notification 에 대한 sample 앱이 있습니다. 이 샘플은 이 local notification을 사용할 때 활용할 수 있는 많은 기능들이 있습니다.


오늘은 여기까지 입니다. 유익한 시간 되었길 바랍니다.



반응형

Comment