← Alle Erweiterungen

Native Erweiterung

KlugPush

com.klug.push.Push

KEIN APM NÖTIG. Herunterladen und loslegen. Einfacher geht es nicht.

Remote-Push-Benachrichtigungen für AIR-Apps auf dem Mac, mit Live-Berechtigungsstatus und Verknüpfung zu den Systemeinstellungen.

macOS Im Produktiveinsatz Ab €19 / Jahr · Kaufen

Überblick

KlugPush bringt Remote-Push-Benachrichtigungen in AIR-Apps unter macOS. Es registriert die App beim Push-Benachrichtigungsdienst von Apple, liefert Ihnen das Device-Token für Ihren Server und übergibt eingehende Benachrichtigungen an ActionScript.

Unter macOS wird ein Nutzer, der Benachrichtigungen einmal abgelehnt hat, nicht erneut gefragt. KlugPush meldet deshalb jederzeit den aktuellen Berechtigungsstatus und öffnet die Seite „Mitteilungen“ in den Systemeinstellungen, damit Nutzer Benachrichtigungen später einschalten können.

KlugPush ist in der Mac-Version unserer Apps täglich im Einsatz, unserem Praxisbeweis.

Funktionen

  • Eigenständig: eine ANE, keine Kernbibliothek und keine abhängigen ANEs, die Sie ergänzen müssten
  • Fragt die Berechtigung ab und registriert für Remote-Benachrichtigungen
  • Device-Token für Ihren Server, sobald die Registrierung abgeschlossen ist
  • Eingehende Benachrichtigungen werden als JSON an ActionScript übergeben
  • Live-Berechtigungsstatus: noch nicht entschieden, abgelehnt oder erlaubt
  • Öffnet die Systemeinstellungen direkt bei den Mitteilungen
  • Direkt über den Push-Dienst von Apple gesendet, kein zusätzlicher Push-Anbieter nötig

Unterstützte Plattformen

macOS Apple Silicon · Intel

Auf anderen Plattformen gibt isSupported false zurück, sodass derselbe Code in einer plattformübergreifenden App bleiben kann.

Erste Schritte

Fügen Sie die Erweiterung Ihrem Application Descriptor hinzu:

app.xml
<extensions>
    <extensionID>com.klug.push.Push</extensionID>
</extensions>

Die App muss mit dem Push-Benachrichtigungs-Entitlement und einem Provisioning Profile signiert sein, das die Capability „Push Notifications“ enthält.

Codebeispiele

Vier vollständige Abläufe, entnommen der API, die in der Mac-Version unserer Apps läuft. Jeder Aufruf kehrt sofort zurück; Ergebnisse kommen über Ihre Callbacks und als StatusEvents an. Vollständige Dokumentation →

1 · Registrieren und das Token an Ihren Server senden
Push.as
import com.klug.push.Push;

var push:Push = Push.getInstance();

if ( push.isSupported )   // macOS; false on every other platform
{
    // asks for permission on the first start, then registers with Apple's push service.
    // The token also arrives when the user declines: permission only affects the display.
    push.register( onToken, onPushError, onNotification );
}

function onToken( token:String ):void
{
    if ( token != loadSavedToken() )   // your app functions
        sendTokenToServer( token );    // e.g. a POST to https://your.server/push
}

function onPushError( message:String ):void
{
    // typical cause: the app is not signed with the push entitlement and a matching profile
    trace( "push registration failed: " + message );
}
2 · Benachrichtigungen, während die App läuft
Incoming.as
function onNotification( json:String ):void
{
    // the full payload as your server sent it: the "aps" part plus your own keys
    var payload:Object = JSON.parse( json );
    if ( payload.hasOwnProperty( "stationId" ) )     // a key your server adds
        openLiveView( payload.stationId );           // your app function
}

// later, e.g. after the user signed in to another account
function onLogin():void
{
    if ( push.token != null )        // the last token; null until registration finished
        sendTokenToServer( push.token );
}
3 · Berechtigungsstatus und Systemeinstellungen
Settings.as
import flash.events.Event;
import flash.desktop.NativeApplication;

// the live status arrives asynchronously; the callback stays set and
// also receives the answer when register() shows the prompt
push.refreshStatus( updateNotificationSwitch );

function updateNotificationSwitch( status:int ):void
{
    if ( status == Push.STATUS_AUTHORIZED )         showSwitch( "on" );    // your app function
    else if ( status == Push.STATUS_DENIED )         showSwitch( "off" );
    else if ( status == Push.STATUS_NOT_DETERMINED ) showSwitch( "not asked" );
}

// macOS never asks a second time: the way back is System Settings
function onSwitchTapped():void
{
    if ( push.authStatus == Push.STATUS_DENIED ) push.openSettings();
}

// the user may have changed it there: read it again when the app comes back
NativeApplication.nativeApplication.addEventListener( Event.ACTIVATE, function( e:Event ):void {
    push.refreshStatus( updateNotificationSwitch );
});
4 · Mit Ereignissen statt Callbacks lauschen
Events.as
import flash.events.StatusEvent;

push.addEventListener( StatusEvent.STATUS, function( e:StatusEvent ):void {
    // here the LEVEL names the kind and the CODE carries the value
    if ( e.level == Push.TOKEN )             sendTokenToServer( e.code );
    else if ( e.level == Push.ERROR )        trace( "push error: " + e.code );
    else if ( e.level == Push.NOTIFICATION ) onNotification( e.code );   // JSON
});

push.register();   // all three callbacks are optional

API-Übersicht

Push.getInstance()Gibt die einzige Instanz zurück.
isSupportedTrue unter macOS, sonst false.
register(onToken, onError, onNotification)Fragt die Berechtigung ab und registriert für Remote-Benachrichtigungen. Alle drei Callbacks sind optional; onNotification wird ausgelöst, während die App läuft. Gibt false zurück, wo Push nicht unterstützt wird.
tokenDas letzte Device-Token, oder null, bis die Registrierung abgeschlossen ist.
authStatusDer zuletzt bekannte Berechtigungsstatus; -1, bis register() oder refreshStatus() gelaufen ist.
refreshStatus(onStatus)Liest den aktuellen Berechtigungsstatus; onStatus(status:int) wird aufgerufen, sobald er vorliegt, und erneut mit der Antwort auf die Abfrage von register().
openSettings()Öffnet die Systemeinstellungen bei den Mitteilungen.
STATUS_NOT_DETERMINED, STATUS_DENIED, STATUS_AUTHORIZEDWerte des Berechtigungsstatus: 0, 1 und 2. macOS kann auch 3 (vorläufig) und 4 (ephemer) melden.
TOKEN, ERROR, NOTIFICATIONStatusEvent-Levels für Listener: Der Level benennt die Art, der Code trägt den Wert.

Ereignisse

level tokencode = das Device-Token, ein Hex-String
level errorcode = die Fehlermeldung der Registrierung
level notificationcode = die Nutzdaten der Benachrichtigung als JSON

KlugPush kaufen

Eine Jahreslizenz für eine AIR-Anwendung, mit allen Updates für 12 Monate. Nach der Zahlung erhalten Sie die Erweiterung, die ActionScript-Bibliothek und die Dokumentation per E-Mail, in der Regel innerhalb eines Werktags. Lizenz und Bedingungen

Simple
€19 / Jahr
  • Lizenz für eine AIR-Anwendung
  • Alle Updates für 12 Monate
  • Kein Support
Simple kaufen
Standard
€149 / Jahr
  • Lizenz für eine AIR-Anwendung
  • Alle Updates für 12 Monate
  • Antwort per E-Mail innerhalb von 7 Tagen
Standard kaufen
Priority
€299 / Jahr
  • Lizenz für eine AIR-Anwendung
  • Alle Updates für 12 Monate
  • Antwort per E-Mail innerhalb von 48 Stunden
Priority kaufen
Die Steuern werden an der Kasse von Link (Stripe) berechnet. Die Application-ID Ihrer AIR-App geben Sie beim Bezahlen ein.

Voraussetzungen

AIR SDK51.x (HARMAN)
macOSmacOS 11 oder neuer
SignierungPush-Benachrichtigungs-Entitlement und ein passendes Provisioning Profile
ServerSendet Benachrichtigungen über den Push-Dienst von Apple