com.malliina.push.apns

Type members

Classlikes

Companion
class
class APNSCertClient(socketFactory: SSLSocketFactory, isSandbox: Boolean) extends APNSHttpClient with AutoCloseable
Companion
object
object APNSClient
Companion
class
case object APNSConsiderate extends APNSPriority
object APNSError extends OpenEnum[APNSError]
Companion
class
case class APNSErrorJson(reason: APNSError)
Companion
object
Companion
class
Companion
class
class APNSHttpClient(val client: OkClient, prep: RequestPreparer, isSandbox: Boolean) extends APNSHttpClientBase[[T] =>> Future[T]]

APNs client, using the HTTP/2 notification API.

APNs client, using the HTTP/2 notification API.

Uses OkHttp with Jetty's "alpn-boot" in the bootclasspath for HTTP/2 support; please check the build definition of this project for details.

See also
Companion
object
abstract class APNSHttpClientBase[F[_]](http: HttpClient[F], prep: RequestPreparer, isSandbox: Boolean) extends PushClientF[APNSToken, APNSRequest, Either[APNSError, APNSIdentifier], F]
case class APNSHttpResult(token: APNSToken, id: Option[APNSIdentifier], error: Option[APNSError])
Companion
object
Companion
class
final case class APNSIdentifier(id: String) extends AnyVal
Companion
object
Companion
class
case object APNSImmediately extends APNSPriority
case class APNSMessage(aps: APSPayload, data: Map[String, Json])
Companion
object
object APNSMessage
Companion
class
case class APNSMeta(apnsTopic: APNSTopic, apnsExpiration: Long, apnsPriority: APNSPriority, apnsPushType: APNSPushType, apnsId: Option[APNSIdentifier])
Companion
object
object APNSMeta
Companion
class
sealed abstract class APNSPriority(val priority: Int)
Companion
object
object APNSPriority extends ValidatingCompanion[Int, APNSPriority]
Companion
class
sealed abstract class APNSPushType(val name: String)
Companion
object
object APNSPushType extends StringEnumCompanion[APNSPushType]
Companion
class
case class APNSRequest(message: APNSMessage, meta: APNSMeta)
Companion
object
object APNSRequest
Companion
class
final case class APNSToken(token: String) extends AnyVal with Token
Companion
object
Companion
class
case class APNSTokenConf(privateKey: PKCS8EncodedKeySpec, keyId: KeyId, teamId: TeamId)
Value Params
privateKey

downloadable from Apple's developer website

Companion
object
Companion
class
Companion
class

For security, APNs requires you to refresh your token regularly. Refresh your token no more than once every 20 minutes and no less than once every 60 minutes. APNs rejects any request whose token contains a timestamp that is more than one hour old. Similarly, APNs reports an error if you recreate your tokens more than once every 20 minutes.

For security, APNs requires you to refresh your token regularly. Refresh your token no more than once every 20 minutes and no less than once every 60 minutes. APNs rejects any request whose token contains a timestamp that is more than one hour old. Similarly, APNs reports an error if you recreate your tokens more than once every 20 minutes.

On your provider server, set up a recurring task to recreate your token with a current timestamp. Encrypt the token again and attach it to subsequent notification requests.

See also
Companion
object
final case class APNSTopic(topic: String) extends AnyVal
Companion
object
object APNSTopic extends SimpleCompanion[String, APNSTopic]
Companion
class
case class APSPayload(alert: Option[Either[String, AlertPayload]], badge: Option[Int], sound: Option[String], category: Option[String], threadId: Option[String])
Value Params
alert

Some(Left(...)) for a simple alert text, Some(Right(...)) for more verbose alert details, None for background notifications

badge

badge number

sound

rock.mp3

Companion
object
object APSPayload
Companion
class
case object Alert extends APNSPushType
case class AlertPayload(body: String, title: Option[String], launchImage: Option[String], actionLocKey: Option[String], locKey: Option[String], locArgs: Option[Seq[String]], titleLocKey: Option[String], titleLocArgs: Option[Seq[String]])
Companion
object
object AlertPayload
Companion
class
case object Background extends APNSPushType
case object BadCertificate extends APNSError
case object BadCollapseId extends APNSError
case object BadDeviceToken extends APNSError
case object BadExpirationDate extends APNSError
case object BadMessageId extends APNSError
case object BadPath extends APNSError
case object BadPriority extends APNSError
case object BadTopic extends APNSError
case object DeviceTokenNotForTopic extends APNSError
case object DuplicateHeaders extends APNSError
case object ExpiredProviderToken extends APNSError
case object Forbidden extends APNSError
case object IdleTimeout extends APNSError
case class InactiveDevice(deviceHexID: String, asOf: Long)
case object InternalServerError extends APNSError
case object InvalidProviderToken extends APNSError
final case class KeyId(id: String) extends AnyVal

Apple Developer Key ID.

Apple Developer Key ID.

case object MethodNotAllowed extends APNSError
case object MissingDeviceToken extends APNSError
case object MissingProviderToken extends APNSError
case object MissingTopic extends APNSError
case class OtherReason(r: String) extends APNSError
case object PayloadEmpty extends APNSError
case object PayloadTooLarge extends APNSError
Companion
object
Companion
class
case object ServiceUnavailable extends APNSError
case object Shutdown extends APNSError
final case class TeamId(team: String) extends AnyVal

Apple Team ID.

Apple Team ID.

case object TooManyRequests extends APNSError
case object TopicDisallowed extends APNSError
case object UnknownReason extends APNSError
case object Unregistered extends APNSError

Deprecated classlikes

@deprecated("Use APNSHttpClient instead", "1.15.0")
class APNSClient(keyStore: KeyStore, keyStorePass: String, isSandbox: Boolean)(ec: ExecutionContext) extends PushClient[APNSToken, APNSMessage, ApnsNotification] with AutoCloseable
Companion
object
Deprecated