← Kaikki laajennukset

Natiivilaajennus

KlugPush

com.klug.push.Push

APM EI OLE TARPEEN. Lataa ja nauti. Yksinkertaisempaa ei voi olla.

Push-ilmoitukset AIR-sovelluksille Macilla, reaaliaikaisella lupatilan tarkistuksella ja pikakuvakkeella järjestelmäasetuksiin.

macOS Tuotantokäytössä Alkaen €19 / vuosi · Osta

Yleiskatsaus

KlugPush tuo push-ilmoitukset AIR-sovelluksille macOS:llä. Se rekisteröi sovelluksen Applen push-ilmoituspalveluun, antaa palvelimellesi laitetunnisteen ja toimittaa saapuvat ilmoitukset ActionScriptille.

macOS:llä käyttäjältä, joka on kerran kieltänyt ilmoitukset, ei kysytä uudelleen. Siksi KlugPush raportoi nykyisen lupatilan milloin tahansa ja avaa Ilmoitukset-sivun Järjestelmäasetuksissa, jotta käyttäjät voivat ottaa ilmoitukset käyttöön myöhemmin.

KlugPush on päivittäisessä käytössä sovellustemme Mac-versiossa, todisteenamme toimivuudesta.

Ominaisuudet

  • Itsenäinen: yksi ANE, ei ydinkirjastoa tai riippuvaisia ANE-laajennuksia lisättäväksi
  • Pyytää luvan ja rekisteröi etäilmoituksille
  • Laitetunniste palvelimellesi heti, kun rekisteröinti on valmis
  • Saapuvat ilmoitukset toimitetaan ActionScriptille JSON-muodossa
  • Reaaliaikainen lupatila: ei vielä päätetty, kielletty tai sallittu
  • Avaa Järjestelmäasetukset suoraan Ilmoitukset-kohtaan
  • Lähetetään suoraan Applen push-palvelun kautta, ylimääräistä push-palveluntarjoajaa ei tarvita

Tuetut alustat

macOS Apple silicon · Intel

Muilla alustoilla isSupported palauttaa false, joten sama koodi voi pysyä monialustaisessa sovelluksessa.

Aloitus

Lisää laajennus sovelluksesi descriptoriin:

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

Sovellus on allekirjoitettava push-ilmoitusten entitlementillä ja provisiointiprofiililla, joka sisältää Push Notifications -ominaisuuden.

Koodiesimerkit

Neljä täydellistä esimerkkiä sovellustemme Mac-versiossa pyörivästä rajapinnasta. Jokainen kutsu palaa heti; tulokset saapuvat takaisinkutsuillesi ja StatusEvent-tapahtumina. Koko dokumentaatio →

1 · Rekisteröidy ja lähetä tunniste palvelimellesi
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 · Ilmoitukset sovelluksen ollessa käynnissä
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 · Lupatila ja Järjestelmäasetukset
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 · Kuuntele tapahtumia takaisinkutsujen sijaan
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

Rajapintayleiskatsaus

Push.getInstance()Palauttaa yksittäisen instanssin.
isSupportedTrue macOS:llä, muualla false.
register(onToken, onError, onNotification)Pyytää luvan ja rekisteröi etäilmoituksille. Kaikki kolme takaisinkutsua ovat valinnaisia; onNotification käynnistyy sovelluksen ollessa käynnissä. Palauttaa false, jos push ei ole tuettu.
tokenViimeisin laitetunniste tai null, kunnes rekisteröinti on valmis.
authStatusViimeisin tunnettu lupatila; -1, kunnes register() tai refreshStatus() on ajettu.
refreshStatus(onStatus)Lukee nykyisen lupatilan; onStatus(status:int) kutsutaan, kun se saapuu, ja uudelleen register()-kutsun kehotteen vastauksella.
openSettings()Avaa Järjestelmäasetukset Ilmoitukset-kohtaan.
STATUS_NOT_DETERMINED, STATUS_DENIED, STATUS_AUTHORIZEDLupatilan arvot 0, 1 ja 2. macOS voi raportoida myös 3 (väliaikainen, provisional) ja 4 (ephemeral).
TOKEN, ERROR, NOTIFICATIONStatusEvent-tasot kuuntelijoille: taso kertoo tyypin, koodi kantaa arvon.

Tapahtumat

level tokencode = laitetunniste, heksamerkkijono
level errorcode = rekisteröinnin virheilmoitus
level notificationcode = ilmoituksen sisältö JSON-muodossa

Osta KlugPush

Vuosilisenssi yhdelle AIR-sovellukselle, kaikki päivitykset 12 kuukauden ajan. Maksun jälkeen saat laajennuksen, ActionScript-kirjaston ja dokumentaation sähköpostitse, yleensä yhden arkipäivän kuluessa. Lisenssi ja ehdot

Perus
€19 / vuosi
  • Lisenssi yhdelle AIR-sovellukselle
  • Kaikki päivitykset 12 kuukauden ajan
  • Ei tukea
Osta Perus
Vakio
€149 / vuosi
  • Lisenssi yhdelle AIR-sovellukselle
  • Kaikki päivitykset 12 kuukauden ajan
  • Vastaus sähköpostitse 7 päivän kuluessa
Osta Vakio
Prioriteetti
€299 / vuosi
  • Lisenssi yhdelle AIR-sovellukselle
  • Kaikki päivitykset 12 kuukauden ajan
  • Vastaus sähköpostitse 48 tunnin kuluessa
Osta Prioriteetti
Link (Stripe) laskee verot kassalla. Syötät AIR-sovelluksesi sovellustunnuksen kassalla.

Vaatimukset

AIR SDK51.x (HARMAN)
macOSmacOS 11 tai uudempi
AllekirjoitusPush-ilmoitusten entitlement ja vastaava provisiointiprofiili
PalvelinLähettää ilmoitukset Applen push-palvelun kautta