1. 푸시 수신 시 백그라운드 상태 액션
푸시 메시지를 받아 앱을 실행하는 것 말고, 앱이 실행되고 있지 않은 상태에서 알림바에서 즉시 특정 작업, 승인/거부 등 간단한 작업을 수행할 수 있다. Android에서는 기본적으로 커스텀 액션을 넣을 수 있게 되어 있는데, iOS에서는 Category라는 개념의 메시지 추가를 통해 진행된다.
>> 참조: developer.apple.com/documentation/usernotifications/declaring_your_actionable_notification_types
클래스 차원에서는 UNNotificationCategory와 UNNotificationAction를 사용하면 된다. (iOS 10.0 이전에는 UIUserNotificationCategory, UIUserNotificationAction/UIMutableNotificationAction을 사용했었지만 10.0 이후 다 없어지고 바뀌었다.)
이것을 위해 송신측(서버)에서도 푸시 메시지에 한 가지 추가 작업이 필요하다.
APNS를 직접 사용할 때는 "category",
FCM을 사용할 때는 "click_action"을 notification 메시지에 추가해 주면 된다.
>> 참조: firebase.google.com/docs/cloud-messaging/concept-options?hl=ko
단, iOS에서 앱 실행 없이 백그라운드로 이 기능을 활용할 때, 만약 외부 통신, 즉 서버를 호출하는 경우라면 반드시 추가로 해 주어야 하는 작업이 있다. 바로...... Background fetch를 활성화하는 것!
>> 참조: swifteyes.blogspot.com/2016/09/ios-multitasking-background-fetch.html
Background Modes를 켜는 것 만으로는 안 된다. 반드시 하위의 Background fetch도 체크해 주어야 한다.
안 그러면 절대 서버 호출이 되지 않는다. iOS 자체 내부 작업은 다 되지만 외부 통신 작업은 모조리 실패한다.
(골 때리는 것은... 이 경우에도 USB 디버깅으로 iPhone을 연결해서 하면 잘 된다... 진짜 골 때린다....)
2. 앱 간 데이터 공유
Xcode 앱 개발 시 동일한 팀(team) ID로 여러 앱을 만들 수 있다. 예를 들어 KeyChain 같은 암호화 저장소를 이용해서 동일한 아이디, 패스워드 등을 저장해 두었다가 여러 앱에서 활용할 수 있다. 단, 그러기 위해서는 Keychain Sharing을 켜야 한다.
>> 참조1: firebase.google.com/docs/auth/ios/single-sign-on?hl=ko
>> 참조2: codinggom.github.io/Keychain-sharing/
Keychain Sharing을 켜지 않고 앱을 만들면, 최초 앱에서 저장한 설정을 다른 앱에서 읽으려고 할 때
"User interaction is not allowed" 오류가 발생한다.
끝.
'Tech: > 일반·기타' 카테고리의 다른 글
Git 사용 팁 두 가지 (0) | 2021.11.11 |
---|---|
Windows 11 설치 가능? (0) | 2021.10.13 |
2020: React Native (0.61~0.63) 개발 참조#2 (0) | 2020.12.31 |
React: reactstrap-Tooltip의 scheduleUpdate 함수?! (0) | 2020.12.07 |
Visual Studio 2019로 React 개발/디버깅 #3 (0) | 2020.11.30 |