ABOUT ME

Swift /Flutter 를 다루는 앱 개발자의 블로그 하지만 웨이트에 진심

Today
Yesterday
Total
  • LiveActivity - Push Console로 테스트 해보기
    개발/Swift 2024. 10. 19. 17:13
    반응형

    푸시토큰

                    let activity = try Activity.request(attributes: activityAttributes, content: content, pushType: .token)
                    print("activity.id \\(activity.id.lowercased())")
    
                    Task {
                        for await pushToken in activity.pushTokenUpdates {
                            let pushTokenString = pushToken.reduce("") {
                                  $0 + String(format: "%02x", $1)
                            }
    
                            print("pushTokenString \\(pushTokenString)")
                       }
    
    

    request한 액티비티에서

    ID와 Token 정보를 바로 받을수 있음,

    Token 은 비동기로 받아옴

     

     

    Push Console에서 ID값 Token 값 입력하여 로컬 푸시 전송 가능함

    로컬 푸시 전송으로 라이브 액티비티 update를 치려한다

    General - Reciepient- Send notification to device 내부에 ID를 입력함 (소문자)

    Request - Headers 내부에는

    apns-push-type 에 liveactivity 선택,

    priority 10 주고

    apns-id 에다가 activity.id 입력

     

    Payload

    event → content-state 에 Content State 입력해줌

      public struct ContentState: Codable, Hashable {
            let orderStatus: OrderStatus
        }
    
    

    설정했던 State 값을 넣어줌

    timestamp 유닉스코드로 넣어줌, 챗지피티한테 지금 타임스탬프 유닉스코드로 달라하면 줌

    stale-date , alart은 필요한지모르겠지만 일단 넣어줌 stale-date는 그냥 지금 timestamp에서 1000정도 올림

    JSON 변환하면 다음과 같다

    {
        "aps": {
            "event": "update",
            "content-state": {
                "orderStatus": 2 //바꾸는 상태
            },
            "timestamp": 1729133259,
            "stale-date": 1729143259,
            "alert": {
                "title": "asd",
                "body": "sad"
            }
        }
    }
    

     

    이대로 전송하면 라이브액티비티 푸시를 디바이스에서 받게 되고 상태가 바뀜

    앱 내부적으로 handle해서 update 쳐야 하는줄 알았는데 그냥 알아서 상태 변환됨

     

    결론 - 클라이언트는 상태와 상황에 맞게 UI를 표시하고 서버가 상황에 맞게 푸시를 날려 상태 변경 해줘야함

    반응형

    댓글

Designed by Tistory.