stateオブジェクト

スマートフォンでカードに表示される内容を制御する、すべてのフィールド。

stateはカードに表示される内容です。どのレイアウトがどのフィールドを表示するかはレイアウトにあります。ルールは次のとおりです:

  • 更新時(および終了時のfinalState)は、送ったフィールドが保存済みのステートにマージされます。送らなかったフィールドは値がそのまま残ります。
  • versusも同じように1階層下までマージされます。segmentsは丸ごと置き換えられます。
  • フィールドを空にするには""を送ります(segmentsの場合は[])。
  • ステート全体は16KB以下にする必要があります。

Androidは、テキスト、アクセントカラー、アイコン、ピクチャーの写真、プログレスバー、スコア、リーグのロゴ、アクションボタンからシステム通知を描画します。iPhoneのみと記載されたフィールドは、Androidでは何もしません。

レイアウトとテキスト

フィールド型デフォルト説明
layoutstringprogressprogress、picture、versus、countdownのいずれか。開始時に設定します。更新で変えると種類が切り替わります。
primaryTextstring""プログレスでは見出し、ピクチャーではキャプション。すべての通知のタイトルにもなるので、どのレイアウトでも設定します。
secondaryTextstring""見出しの下の行で、すべての通知の本文。カウントダウンでは時計の横の名前。
stagestringなし現在のステップを表す短い言葉(「配達中」)。iPhoneでは、プログレスの場合だけコンパクトなDynamic Islandに表示されます。Android 16ではステータスチップに表示されます。7文字程度に収めます。
isCompletebooleanfalse最終ステートではtrue。プログレスでは、コンパクトなDynamic Islandに「完了」と表示されます。カードは終了するまで残ります。

カラー

カラーは#RRGGBBのテキストです。文字色のフィールドはありません。文字は読みやすいように黒か白になります。Dynamic Islandは常に暗い色です。

フィールド型デフォルト説明
accentColorHexstring青ブランドカラー。プログレスバー、色合い、Androidのアクセントに使われます。背景色をカスタムにすると、バーは代わりに黒か白になります。ステートで設定されていない場合はbrand.colorで設定されます。
backgroundColorHexstring黒ロック画面の背景(プログレス、バーサス、カウントダウン)。iPhoneのみ。
backgroundGradientHexstringなし2つ目の色。backgroundColorHexと組み合わせると、背景がグラデーションになります(プログレス、バーサス、カウントダウン)。iPhoneのみ。

画像

画像フィールドには、スマートフォンがダウンロードできる完全なhttps URLを指定します。WebPを使います。形とサイズは収まる画像にあります。更新で新しい画像URLを送るとカードが再起動するので、URLは呼び出し間で同じものを使います。

フィールド型デフォルト説明
headerIconUrlstringなしプログレスとカウントダウンのロゴ、およびピクチャーの小さいマーク。角の丸い正方形で描画されます。
backgroundImageUrlstringなしカードの背後に表示されるフルサイズの画像。ピクチャーの写真、またはプログレスやバーサスの背景です。暗いレイヤーで文字を読みやすくします。カウントダウンでは表示されません。
lockScreenImageUrlstringなしロック画面用のheaderIconUrl。暗いDynamic Islandとは別の画像がロック画面に必要な場合に使います。プログレスとピクチャーで使われます。
islandImageUrlstringなしピクチャーのみ。ロック画面より小さいDynamic Island用の別の写真。指定しない場合はロック画面の写真が使われます。iPhoneのみ。
androidIconUrlstringなしAndroidでheaderIconUrlの代わりに使われます。
androidImageUrlstringなしAndroidでbackgroundImageUrlの代わりに使われます。ピクチャーでは展開時の写真として表示されます。
immersivebooleanfalsetrueにすると、backgroundImageUrlの上の暗いレイヤーがなくなります。暗い画像でのみ使います。iPhoneのみ。

プログレス

フィールド型デフォルト説明
progressnumber0バーの塗りつぶし(0〜1)。セグメントスタイルでsegmentsがある場合は、代わりに完了したステップの割合が使われます。
progressStylestringsegmentedsegmented(ステップごとに1つのカプセル)またはlinear(1本のバーで、両端に最初と最後のステップのラベルが付きます)。
segmentsobject[]なしステップ。それぞれ{ "label": string, "complete": boolean }。最大12個。更新のたびにリスト全体を送ります。
estimatedMinutesnumberなし分単位の整数。stageが設定されていない場合、コンパクトなDynamic Islandに「N分」と表示されます。0で非表示になります。iPhoneのみ。

カウントダウン

フィールド型デフォルト説明
countdownTonumberなし目標時刻。Unixエポック秒の数値で指定します(ミリ秒やテキストは不可)。時計はスマートフォン上で進みます。時刻になると通知が送られます。
countdownStylestringautohms(00:00:00)、days、hours、months、years、autoのいずれか。autoは、最後の36時間は進む時計(00:00:00)を、それより前は最も大きい単位を表示します。
completionTextstringなし時刻になると時計の代わりに表示され、その通知のタイトルにもなります。省略すると、iPhoneではsecondaryText、AndroidではprimaryTextが表示されます。

アクションボタン

ボタンを消すには、3つのフィールドすべてを""で送ります。

フィールド型デフォルト説明
actionLabelstringなしボタンのテキスト(「ライブで見る」)。iPhoneでは、ピクチャーとバーサスで、ロック画面と展開したDynamic Islandに表示されます。コンパクトなDynamic Islandには表示されません。Androidでは、actionURLが設定されていればどのレイアウトでも表示されます。
actionURLstringなしボタンで開くhttpまたはhttpsのURL。それ以外のURLは破棄されます。
actionColorHexstring赤(バーサス)、オレンジ(ピクチャー)ボタンの色。iPhoneのみ。

versusオブジェクト

layoutがversusの場合に、stateの中に設定します。

フィールド型デフォルト説明
leftName / rightNamestring""2つの陣営の名前。
leftScore / rightScorestring"0"スコアはテキストなので、「12」「$1,500」「X」のどれでも使えます。数値はテキストに変換されます。
leftStatus / rightStatusstring""各名前の下の小さい行(「勝利」)。
activeSidestringなし"left"または"right"。Dynamic Islandが最小表示のときに、その側のロゴを表示します。
leftColorHex / rightColorHexstring文字色各陣営のスコアの色。iPhoneのみ。
centerLabelstringなし中央の小さいテキスト(「マップ」)。
centerValuestringなしその下の値(「Overpass」)。
leftImageUrl / rightImageUrlstringなし2つのロゴ。透明なPNGがきれいに表示されます。
centerImageUrlstringなし中央の画像(オークションの品、マップなど)。
sourceLogoUrlstringなしリーグまたはブランドのロゴ。iPhoneの下部ストリップ、Apple Watchのタイル、Androidのアイコンに使われます。

brandオブジェクト

任意。start呼び出しのトップレベルで設定します。あとからPOST /api/brandingで変更できます。ブランド名の下に表示されるサイトは、起動ボタンを置いたページから決まるので、ブランドのフィールドではありません。

フィールド型説明
titlestringアプリの一覧に表示されるアクティビティ名。省略するとnameが使われます。
namestringブランド名(「Acme」)。アプリ、バーサスの下部ストリップに表示され、primaryTextが空の場合は通知のタイトルになります。省略するとソース名は表示されません。
logostringアプリのカバーに使うロゴのURL。省略するとheaderIconUrl、それもなければWebActivityのロゴが使われます。
descriptionstringカバーのタイトルの下の短い行。省略するとsecondaryTextが使われます。
colorstring#RRGGBB形式のブランドカラー。ステートにない場合はaccentColorHexに設定されます。

ライブアクティビティを​「開発」せずに​作り始めませんか?

今日から​作り始めませんか?

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分