← Alle udvidelser

Native udvidelse

KlugDeviceId

com.klug.deviceid

INGEN APM NØDVENDIG. Download og nyd. Det bliver ikke enklere.

En stabil identifikator pr. enhed til AIR-apps på Android og iOS, læst direkte fra systemet.

iOSAndroid I produktion Fra €19 / år · Køb

Oversigt

Mange apps har brug for at genkende en enhed: for at knytte en prøveperiode eller en licens til den, for at begrænse antallet af enheder pr. konto eller for at finde en enhed igen, efter at brugeren har geninstalleret appen. KlugDeviceId læser en stabil identifikator direkte fra operativsystemet.

På Android forbliver identifikatoren den samme, efter at appen er afinstalleret og installeret igen, hvilket gør den til et geninstallationssikkert anker. På iOS nulstilles systemidentifikatoren, når alle apps fra den samme udvikler fjernes; til et geninstallationssikkert anker på iOS og macOS bruges KlugKeychain.

KlugDeviceId er i daglig brug i vores apps, vores proof of concept.

Funktioner

  • Selvstændig: én ANE, intet kernebibliotek eller afhængige ANE'er at tilføje
  • Ét kald returnerer enhedsidentifikatoren på Android og iOS
  • Android 8.0 og nyere: forbliver den samme efter afinstallation og geninstallation af appen, så længe den er signeret med den samme nøgle
  • Ingen tilladelse nødvendig
  • Returnerer en tom streng, hvor ingen identifikator er tilgængelig, aldrig en fejl

Understøttede platforme

Android arm64 · armv7
iOS arm64

På andre platforme returnerer isSupported false, så den samme kode kan blive i en cross-platform-app.

Kom i gang

Tilføj udvidelsen til din applikationsdescriptor:

app.xml
<extensions>
    <extensionID>com.klug.deviceid</extensionID>
</extensions>

Kodeeksempler

Tre komplette flows. Gettere vender straks tilbage, kræver ingen tilladelse og kaster aldrig en fejl: hvor ingen identifikator er tilgængelig, returnerer de en tom streng. Fuld dokumentation →

1 · Læs én gang og send den med login
Login.as
import com.klug.deviceid.DeviceId;
import flash.events.Event;
import flash.net.*;

// read once at start and keep it: ANDROID_ID on Android, identifierForVendor on iOS
var deviceId:String = DeviceId.getInstance().uniqueId;

function login( user:String, password:String ):void
{
    var vars:URLVariables = new URLVariables();
    vars.user     = user;
    vars.password = password;
    vars.device   = deviceId;     // your server binds the licence or the push token to it

    var req:URLRequest = new URLRequest( "https://your.server/login" );
    req.method = URLRequestMethod.POST;
    req.data   = vars;

    var loader:URLLoader = new URLLoader();
    loader.addEventListener( Event.COMPLETE, onLoginResult );
    loader.load( req );
}
2 · Bevar en prøveperiode på tværs af geninstallation (Android)
Trial.as
var dev:DeviceId = DeviceId.getInstance();

// Android: ANDROID_ID stays the same after uninstall and reinstall; only a
// factory reset changes it. From Android 8 it is specific to your signing key.
var anchor:String = dev.androidId;

if ( anchor != "" )
    checkTrial( anchor );     // your server: has this device used the trial before?
else
    checkTrialOnIOS();        // iOS: androidId is always "" and identifierForVendor is
                              // reset on uninstall, use KlugKeychain as the anchor there
3 · Cross-platform-kode og tomme værdier
Device.as
import flash.utils.setTimeout;

function readDeviceId():void
{
    var dev:DeviceId = DeviceId.getInstance();
    if ( !dev.isSupported )
    {
        useOwnDesktopId();        // desktop: isSupported is false, every getter returns ""
        return;
    }

    var id:String = dev.uniqueId;
    if ( id == "" )
        setTimeout( readDeviceId, 1000 );   // iOS can briefly have no value: ask again
    else
        onDeviceId( id );
}

API-oversigt

DeviceId.getInstance()Returnerer den enkelte instans.
isSupportedSand på Android og iOS.
uniqueIdEnhedsidentifikatoren for den kørende platform: ANDROID_ID på Android, identifierForVendor på iOS; en tom streng, hvor den ikke er tilgængelig.
androidIdKun Android-enhedsidentifikatoren, som forbliver den samme efter afinstallation og geninstallation; en tom streng på iOS og andre platforme.

Køb KlugDeviceId

En årlig licens til én AIR-applikation, med alle opdateringer i 12 måneder. Efter betaling modtager du udvidelsen, ActionScript-biblioteket og dokumentationen pr. e-mail, normalt inden for én hverdag. Licens og vilkår

Enkel
€19 / år
  • Licens til én AIR-applikation
  • Alle opdateringer i 12 måneder
  • Ingen support
Køb Enkel
Standard
€149 / år
  • Licens til én AIR-applikation
  • Alle opdateringer i 12 måneder
  • Svar pr. e-mail inden for 7 dage
Køb Standard
Prioritet
€299 / år
  • Licens til én AIR-applikation
  • Alle opdateringer i 12 måneder
  • Svar pr. e-mail inden for 48 timer
Køb Prioritet
Moms og afgifter beregnes ved checkout af Link (Stripe). Du angiver application ID'et for din AIR-app under checkout.

Krav

AIR SDK51.x (HARMAN)
iOSiOS 17 eller nyere
AndroidAndroid 6.0 (API 23) eller nyere
TilladelserIngen