Notice
Recent Posts
Recent Comments
Link
투케이2K
99. (swift/xcode) AnyHashable : Any 형태 데이터를 딕셔너리 (Dictionary) 로 형변환 수행 실시 본문
Swift
99. (swift/xcode) AnyHashable : Any 형태 데이터를 딕셔너리 (Dictionary) 로 형변환 수행 실시
투케이2K 2022. 8. 16. 14:45[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
// MARK: - [푸시 알림 전달 받음 상태 확인]
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]){
print("")
print("===============================")
print("[AppDelegate >> didReceiveRemoteNotification]")
print("--------------------")
print("설명 :: 리모트 푸시 알림 확인")
print("--------------------")
print("applicationState :: \(String(describing: UIApplication.shared.applicationState))")
print("===============================")
print("")
// [switch 문을 사용해서 분기 처리 실시]
switch UIApplication.shared.applicationState {
case .active:
print("")
print("===============================")
print("[AppDelegate >> didReceiveRemoteNotification]")
print("--------------------")
print("설명 :: 포그라운드 상태에서 푸시알림 전달받음")
print("--------------------")
print("userInfo :: \(userInfo.description)")
print("===============================")
print("")
break
case .background:
print("")
print("===============================")
print("[AppDelegate >> didReceiveRemoteNotification]")
print("--------------------")
print("설명 :: 백그라운드 상태에서 푸시알림 전달받음")
print("--------------------")
print("userInfo :: \(userInfo.description)")
print("===============================")
print("")
// [파싱 수행할 변수 정의]
var pushTitle = ""
var pushMessage = ""
var pushMsgType = ""
// [AnyHashable : Any 형태 전체 데이터를 딕셔너리로 변경]
let dicData = userInfo as! [String: Any]
// [개별 파싱 수행 실시]
if (dicData.keys.contains("aps")){
// [aps 파싱 수행]
var apsDic = dicData["aps"] as! [String: Any]
// [alert 파싱 수행]
if (apsDic.keys.contains("alert")){
var alert = apsDic["alert"] as! [String: Any]
// [변수에 데이터 삽입]
pushTitle = String(describing: alert["title"] ?? "")
pushMessage = String(describing: alert["body"] ?? "")
pushMsgType = String(describing: dicData["msgType"] ?? "")
}
}
print("")
print("===============================")
print("[AppDelegate >> didReceiveRemoteNotification]")
print("--------------------")
print("설명 :: [파싱] 백그라운드 푸시알림")
print("--------------------")
print("pushTitle :: \(pushTitle)")
print("--------------------")
print("pushMessage :: \(pushMessage)")
print("--------------------")
print("pushMsgType :: \(pushMsgType)")
print("===============================")
print("")
break
case .inactive:
print("")
print("===============================")
print("[AppDelegate >> didReceiveRemoteNotification]")
print("--------------------")
print("설명 :: 푸시 클릭 접속 확인")
print("--------------------")
print("userInfo :: \(userInfo.description)")
print("===============================")
print("")
break
default:
print("")
print("===============================")
print("[AppDelegate >> didReceiveRemoteNotification]")
print("--------------------")
print("설명 :: default")
print("===============================")
print("")
break
}
}
반응형
'Swift' 카테고리의 다른 글
Comments