push-notify-apn-0.1.0.5: Send push notifications to mobile iOS devices

Copyright(C) 2017 memrange UG
LicenseBSD3
MaintainerHans-Christian Esperer <hc@memrange.io>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Network.PushNotify.APN

Description

Send push notifications using Apple's HTTP2 APN API

Synopsis

Documentation

newSession Source #

Arguments

:: FilePath

Path to the client certificate key

-> FilePath

Path to the client certificate

-> FilePath

Path to the CA

-> Bool

True if the apn development servers should be used, False to use the production servers

-> Int

How many messages will be sent in parallel? This corresponds to the number of http2 streams open in parallel; 100 seems to be a default value.

-> ByteString

Topic (bundle name of the app)

-> IO ApnSession

The newly created session

Start a new session for sending APN messages. A session consists of a connection pool of connections to the APN servers, while each connection has a pool of workers that create HTTP2 streams to send individual push notifications.

newMessage Source #

Arguments

:: JsonApsMessage

The standard message to include

-> JsonAps

The resulting APN message

Prepare a new apn message consisting of a standard message without a custom payload

newMessageWithCustomPayload Source #

Arguments

:: JsonApsMessage

The message

-> Text

The custom payload

-> JsonAps

The resulting APN message

Prepare a new apn message consisting of a standard message and a custom payload

hexEncodedToken Source #

Arguments

:: Text

The base16 (hex) encoded unique identifier for a device (APN token)

-> ApnToken

The resulting token

Create a token from a hex encoded text

rawToken Source #

Arguments

:: ByteString

The bytestring that uniquely identifies a device (APN token)

-> ApnToken

The resulting token

Create a token from a raw bytestring

sendMessage Source #

Arguments

:: ApnSession

Session to use

-> ApnToken

Device to send the message to

-> JsonAps

The message to send

-> IO ApnMessageResult

The response from the APN server

Send a push notification message.

sendSilentMessage Source #

Arguments

:: ApnSession

Session to use

-> ApnToken

Device to send the message to

-> IO ApnMessageResult

The response from the APN server

Send a silent push notification

sendRawMessage Source #

Arguments

:: ApnSession

Session to use

-> ApnToken

Device to send the message to

-> ByteString

The message to send

-> IO ApnMessageResult

The response from the APN server

Send a raw payload as a push notification message (advanced)

alertMessage Source #

Arguments

:: Text

The title of the message

-> Text

The body of the message

-> JsonApsMessage

The modified message

Create a new APN message with an alert part

emptyMessage :: JsonApsMessage Source #

Create an empty apn message

setAlertMessage Source #

Arguments

:: Text

The title of the message

-> Text

The body of the message

-> JsonApsMessage

The message to alter

-> JsonApsMessage

The modified message

Set the alert part of an APN message

setBadge Source #

Arguments

:: Int

The badge number to set. The badge number is displayed next to your app's icon. Set to 0 to remove the badge number.

-> JsonApsMessage

The message to modify

-> JsonApsMessage

The modified message

Set the badge part of an APN message

setCategory Source #

Arguments

:: Text

The category to set

-> JsonApsMessage

The message to modify

-> JsonApsMessage

The modified message

Set the category part of an APN message

setSound Source #

Arguments

:: Text

The sound to use (either "default" or something in the application's bundle)

-> JsonApsMessage

The message to modify

-> JsonApsMessage

The modified message

Set a sound for an APN message

clearAlertMessage Source #

Arguments

:: JsonApsMessage

The message to modify

-> JsonApsMessage

The modified message

Remove the alert part of an APN message

clearBadge Source #

Arguments

:: JsonApsMessage

The message to modify

-> JsonApsMessage

The modified message

Clear the badge part of an APN message

clearCategory Source #

Arguments

:: JsonApsMessage

The message to modify

-> JsonApsMessage

The modified message

Clear the category part of an APN message

clearSound Source #

Arguments

:: JsonApsMessage

The message to modify

-> JsonApsMessage

The modified message

Clear the sound for an APN message

closeSession :: ApnSession -> IO () Source #

Manually close a session. The session must not be used anymore after it has been closed. Calling this function will close the worker thread, and all open connections to the APN service that belong to the given session. Note that sessions will be closed automatically when they are garbage collected, so it is not necessary to call this function.

isOpen :: ApnSession -> IO Bool Source #

Check whether a session is open or has been closed by a call to closeSession

data ApnSession Source #

A session that manages connections to Apple's push notification service

data JsonAps Source #

A push notification message

Instances

Show JsonAps Source # 
Generic JsonAps Source # 

Associated Types

type Rep JsonAps :: * -> * #

Methods

from :: JsonAps -> Rep JsonAps x #

to :: Rep JsonAps x -> JsonAps #

ToJSON JsonAps Source # 
type Rep JsonAps Source # 
type Rep JsonAps = D1 (MetaData "JsonAps" "Network.PushNotify.APN" "push-notify-apn-0.1.0.5-6G3AbtaSR2XIqp9hwyKZMa" False) (C1 (MetaCons "JsonAps" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "jaAps") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 JsonApsMessage)) (S1 (MetaSel (Just Symbol "jaAppSpecificContent") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Text)))))

data JsonApsAlert Source #

The specification of a push notification's message body

data ApnToken Source #

An APN token used to uniquely identify a device