Pigeon v1.0.3 Pigeon.APNS.Notification

Defines APNS notification struct and convenience constructor functions.

Summary

Functions

Returns an APNS.Notification struct with given message, device token, and topic (optional)

Returns an APNS.Notification struct with given message, device token, topic, and message ID

Updates "alert" key in push payload

Updates "badge" key in push payload

Updates "category" key in push payload

Sets "content-available" flag in push payload

Puts custom data in push payload

Sets "mutable-content" flag in push payload

Updates "sound" key in push payload

Types

t()
t() :: %Pigeon.APNS.Notification{device_token: String.t, expiration: String.t, id: String.t, payload: %{}, topic: String.t}

Functions

new(msg, token, topic \\ nil)
new(String.t, String.t, String.t | nil) :: t

Returns an APNS.Notification struct with given message, device token, and topic (optional).

Push payload is constructed in the form of %{"aps" => %{"alert" => msg}}

Examples

iex> Pigeon.APNS.Notification.new("push message", "device token")
%Pigeon.APNS.Notification{
  device_token: "device token",
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"alert" => "push message"}},
  topic: nil
}
new(msg, token, topic, id)

Returns an APNS.Notification struct with given message, device token, topic, and message ID.

Push payload is constructed in the form of %{"aps" => %{"alert" => msg}}

Examples

iex> Pigeon.APNS.Notification.new("push message", "device token", "topic", "id_1234")
%Pigeon.APNS.Notification{
  device_token: "device token",
  expiration: nil,
  id: "id_1234",
  payload: %{"aps" => %{"alert" => "push message"}},
  topic: "topic"
}
put_alert(notification, alert)
put_alert(t, String.t) :: t

Updates "alert" key in push payload.

This is the alert message displayed on the device.

Examples

iex> Pigeon.APNS.Notification.put_alert(%Pigeon.APNS.Notification{}, "push message")
%Pigeon.APNS.Notification{
  device_token: nil,
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"alert" => "push message"}},
  topic: nil
}
put_badge(notification, badge)
put_badge(t, integer) :: t

Updates "badge" key in push payload.

This is the badge number displayed on the application.

Examples

iex> Pigeon.APNS.Notification.put_badge(%Pigeon.APNS.Notification{}, 5)
%Pigeon.APNS.Notification{
  device_token: nil,
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"badge" => 5}},
  topic: nil
}
put_category(notification, category)
put_category(t, String.t) :: t

Updates "category" key in push payload.

Examples

iex> Pigeon.APNS.Notification.put_category(%Pigeon.APNS.Notification{}, "category")
%Pigeon.APNS.Notification{
  device_token: nil,
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"category" => "category"}},
  topic: nil
}
put_content_available(notification)
put_content_available(t) :: t

Sets "content-available" flag in push payload.

Used for silent notifications. When set, ensure alert, badge, and sound keys are not configured.

Examples

iex> Pigeon.APNS.Notification.put_content_available(%Pigeon.APNS.Notification{})
%Pigeon.APNS.Notification{
  device_token: nil,
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"content-available" => 1}},
  topic: nil
}
put_custom(notification, data)
put_custom(t, String.t) :: t

Puts custom data in push payload.

Examples

iex> n = Pigeon.APNS.Notification.new("test message", "device token")
iex> Pigeon.APNS.Notification.put_custom(n, %{"custom-key" => 1234})
%Pigeon.APNS.Notification{
  device_token: "device token",
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"alert" => "test message"}, "custom-key" => 1234},
  topic: nil
}
put_mutable_content(notification)
put_mutable_content(t) :: t

Sets "mutable-content" flag in push payload.

Used for notification service extensions (such as displaying custom media).

Examples

iex> Pigeon.APNS.Notification.put_mutable_content(%Pigeon.APNS.Notification{})
%Pigeon.APNS.Notification{
  device_token: nil,
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"mutable-content" => 1}},
  topic: nil
}
put_sound(notification, sound)
put_sound(t, String.t) :: t

Updates "sound" key in push payload.

Used for custom notification sounds. Value should be the name of the custom sound file in the application’s binary.

Examples

iex> Pigeon.APNS.Notification.put_sound(%Pigeon.APNS.Notification{}, "custom.aiff")
%Pigeon.APNS.Notification{
  device_token: nil,
  expiration: nil,
  id: nil,
  payload: %{"aps" => %{"sound" => "custom.aiff"}},
  topic: nil
}