레이아웃

레이아웃은 네 가지예요. 정보에 맞는 것을 고르세요.

레이아웃용도예시
progress단계, 또는 목표를 향해 커지는 값.주문, 배송, 모금 행사.
picture사진이 가장 중요할 때.반려동물 매칭, 매물, 그 순간의 사진.
versus점수가 있는 두 편.게임, 경기, 경매.
countdown시간상의 한 순간. 시계는 휴대폰에서 흘러가요.발사, 킥오프, 마감.

시작할 때 상태에 layout 값을 설정하세요. 나중에 바꾸려면 업데이트에서 새 layout 값과 그 레이아웃의 필드를 보내세요. 실시간 현황 하나가 점수를 보여 주다가 사진을, 다시 점수를 보여 줄 수 있어요.

레이아웃별 표시 항목

iPhone에서:

필드진행률사진대결카운트다운
primaryText헤드라인캡션표시 안 됨표시 안 됨
secondaryText헤드라인 아래 줄캡션 아래 텍스트표시 안 됨시계 옆 이름
headerIconUrl로고작은 로고표시 안 됨로고
backgroundImageUrl배경사진배경표시 안 됨
versus표시 안 됨표시 안 됨이름, 점수, 로고, 상태, 가운데 열표시 안 됨
액션 버튼표시 안 됨표시됨표시됨표시 안 됨
컴팩트 Dynamic Islandstage, 그다음 "N분", 그다음 링사진만점수와 로고남은 시간

모든 레이아웃에서 알림은 primaryText 값을 제목으로, secondaryText 값을 본문으로 써요. 표시하지 않는 레이아웃에서도 둘 다 설정하세요.

Android에서는 모든 레이아웃이 제목과 한 줄 텍스트로 된 알림이에요:

  • 제목: primaryText. 대결 레이아웃은 점수("Lincoln 14-7 Central"), 카운트다운 레이아웃은 남은 시간.
  • 텍스트: secondaryText. 대결 레이아웃은 가운데 열, 가운데 열이 없으면 상태.
  • 사진 레이아웃은 사용자가 알림을 펼치면 사진을 보여 줘요.

잘 맞는 텍스트 길이

가장 작은 iPhone 화면 기준의 안전한 길이예요. 더 긴 텍스트는 "..." 없이 들어가는 마지막 단어에서 잘려요. Android는 긴 텍스트를 자르지 않고 줄바꿈해요. 보내기 전에 빌더에서 디자인을 확인하세요.

레이아웃필드글자 수
진행률primaryText로고가 있으면 17, 없으면 21
진행률secondaryText28
진행률단계 라벨 (segments)단계 3개면 12, 2개면 21
진행률stage7
사진primaryText27, 두 줄
사진secondaryText48, 두 줄
대결leftName / rightName가운데 열이 있으면 12, 없으면 16
대결leftStatus / rightStatus14
대결centerLabel / centerValue10
대결leftScore / rightScore로고와 가운데 열이 있으면 2자리
카운트다운secondaryText20
제한 없음actionLabel10
제한 없음brand.name18

잘 맞는 이미지

WebP를 쓰세요. PNG와 JPEG도 되지만 SVG는 안 돼요. 빌더는 모든 이미지를 너비 400픽셀의 WebP로, 슬롯 모양에 맞게 잘라 저장해요. 같은 크기를 쓰세요:

필드모양크기
headerIconUrl, lockScreenImageUrl, androidIconUrl, 대결 로고정사각형400 x 400
backgroundImageUrl가로형, 2.34:1400 x 171
islandImageUrl거의 정사각형, 1.12:1 (immersive 값이 true이면 2.12:1)400 x 358
androidImageUrl1.39:1400 x 288

로고 배경은 투명하게 하세요.

예시

단계가 있는 진행률

주문이 진행되면서 단계가 하나씩 완료돼요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "pizza-tracker",
  "brand": {
    "title": "Order #1234"
  },
  "state": {
    "layout": "progress",
    "primaryText": "In the oven now",
    "secondaryText": "Your order is cooking",
    "accentColorHex": "#0A84FF",
    "backgroundColorHex": "#0080BA",
    "headerIconUrl": "https://acme.example/logo.png",
    "estimatedMinutes": 30,
    "progressStyle": "segmented",
    "segments": [
      {
        "label": "Cooking",
        "complete": false
      },
      {
        "label": "On the way",
        "complete": false
      },
      {
        "label": "Delivered",
        "complete": false
      }
    ]
  }
}'

사진

사진은 backgroundImageUrl에 넣어요. headerIconUrl 값은 작은 로고예요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "pet-matches",
  "brand": {
    "title": "Meet Luna"
  },
  "state": {
    "layout": "picture",
    "primaryText": "Luna",
    "secondaryText": "2 year old Tabby, Spayed",
    "accentColorHex": "#FF6B35",
    "headerIconUrl": "https://petfinder.example/logo.png",
    "backgroundImageUrl": "https://petfinder.example/luna.jpg",
    "actionLabel": "View Live",
    "actionURL": "https://petfinder.example/luna"
  }
}'

대결

점수, 로고, 상태, 가운데 열이 있는 두 편.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "csgo-scores",
  "brand": {
    "title": "CSGO Esports"
  },
  "state": {
    "layout": "versus",
    "primaryText": "Heroic leads 12-9",
    "secondaryText": "Map: Overpass",
    "accentColorHex": "#0A84FF",
    "backgroundColorHex": "#001226",
    "backgroundGradientHex": "#00428C",
    "actionLabel": "Watch Live",
    "actionURL": "https://hltv.org/matches",
    "versus": {
      "leftName": "Movistar",
      "rightName": "Heroic",
      "leftScore": "9",
      "rightScore": "12",
      "leftStatus": "T side",
      "rightStatus": "CT side",
      "activeSide": "right",
      "leftImageUrl": "https://hltv.org/movistar.png",
      "rightImageUrl": "https://hltv.org/heroic.png",
      "centerLabel": "Map",
      "centerValue": "Overpass",
      "sourceLogoUrl": "https://hltv.org/csgo.png"
    }
  }
}'

카운트다운

시간이 됐을 때 카드가 아직 휴대폰에 있으면, 서비스가 알아서 알림을 한 번 보내요. 시계 자리와 그 알림에 표시할 문구는 completionText 값으로 설정하세요. 8시간보다 긴 카운트다운은 keepAlive: true 설정으로 시작하세요. 그렇지 않으면 시간이 되기 전에 iOS가 카드를 끝내요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "gta6-countdown",
  "keepAlive": true,
  "brand": {
    "title": "GTA VI"
  },
  "state": {
    "layout": "countdown",
    "primaryText": "Grand Theft Auto VI",
    "secondaryText": "GTA VI",
    "countdownTo": 1795046400,
    "countdownStyle": "days",
    "completionText": "Out now",
    "headerIconUrl": "https://rockstargames.com/gta6-logo.png"
  }
}'

“만들지 않고” 실시간 현황을 만들 준비가 됐나요?

오늘 바로 만들어 볼 준비가 됐나요?

App Store 제출도, 관리할 네이티브 코드베이스도 필요 없어요. 링크 하나로 실시간 현황을 사용자 화면에 띄우고, 쓰기 쉬운 API로 계속 업데이트하세요.

포함: 매월 무료 푸시 7,000건

Movistar RidersMovistar Riders테러리스트9
맵Overpass
12HeroicHeroic대테러리스트CSGOCSGO e스포츠생중계 보기
8 PM
빨래하는 중8:00 PM까지 완료하기
빨래하기바닥 청소점심 먹기
Domino's조리 중
912
Movistar RidersMovistar Riders테러리스트9
맵Overpass
12HeroicHeroic대테러리스트CSGOCSGO e스포츠생중계 보기
라이브
라이브 보기Moly의 고양이 캠3초 전 업데이트고양이 캠
오븐에서 굽는 중Mat이 주문하신 메뉴를 굽고 있어요.Domino's
조리 중배달 중배달 완료
생각 중
API 엔드포인트 조사 중Foodscout 변경 사항 준비 중
생각 중작업 중완료
30분 후 도착Mat이 달려가고 있어요.Domino's
배달 중배달 완료
GTA00:00
GTA00:00:00GTA VI
San Francisco Shock홈1
맵Midtown
3
Dallas Fuel원정Overwatch League생중계 보기
United 1423탑승구 B22 · 좌석 14C · SFO → JFK
탑승비행 중도착
탑승
6분 후 도착Marcus · Toyota CamryToyota Camry
배달 중도착
6분
Movistar RidersMovistar Riders테러리스트9
맵Overpass
12HeroicHeroic대테러리스트CSGOCSGO e스포츠생중계 보기
8 PM
빨래하는 중8:00 PM까지 완료하기
빨래하기바닥 청소점심 먹기
Domino's조리 중
912
Movistar RidersMovistar Riders테러리스트9
맵Overpass
12HeroicHeroic대테러리스트CSGOCSGO e스포츠생중계 보기
라이브
라이브 보기Moly의 고양이 캠3초 전 업데이트고양이 캠
오븐에서 굽는 중Mat이 주문하신 메뉴를 굽고 있어요.Domino's
조리 중배달 중배달 완료
생각 중
API 엔드포인트 조사 중Foodscout 변경 사항 준비 중
생각 중작업 중완료
30분 후 도착Mat이 달려가고 있어요.Domino's
배달 중배달 완료
GTA00:00
GTA00:00:00GTA VI
San Francisco Shock홈1
맵Midtown
3
Dallas Fuel원정Overwatch League생중계 보기
United 1423탑승구 B22 · 좌석 14C · SFO → JFK
탑승비행 중도착
탑승
6분 후 도착Marcus · Toyota CamryToyota Camry
배달 중도착
6분
Movistar RidersMovistar Riders테러리스트9
맵Overpass
12HeroicHeroic대테러리스트CSGOCSGO e스포츠생중계 보기
8 PM
빨래하는 중8:00 PM까지 완료하기
빨래하기바닥 청소점심 먹기
Domino's조리 중
912
Movistar RidersMovistar Riders테러리스트9
맵Overpass
12HeroicHeroic대테러리스트CSGOCSGO e스포츠생중계 보기
라이브
라이브 보기Moly의 고양이 캠3초 전 업데이트고양이 캠
오븐에서 굽는 중Mat이 주문하신 메뉴를 굽고 있어요.Domino's
조리 중배달 중배달 완료
생각 중
API 엔드포인트 조사 중Foodscout 변경 사항 준비 중
생각 중작업 중완료
30분 후 도착Mat이 달려가고 있어요.Domino's
배달 중배달 완료
GTA00:00
GTA00:00:00GTA VI
San Francisco Shock홈1
맵Midtown
3
Dallas Fuel원정Overwatch League생중계 보기
United 1423탑승구 B22 · 좌석 14C · SFO → JFK
탑승비행 중도착
탑승
6분 후 도착Marcus · Toyota CamryToyota Camry
배달 중도착
6분