Oversigt
KlugKeychain gemmer små værdier, f.eks. flag, tokens eller ID'er, i nøgleringen på iOS og macOS. I modsætning til almindelig applagring bevarer nøgleringen disse værdier, når appen afinstalleres og installeres igen.
Det gør den til et varigt anker for ting, en app skal huske på tværs af geninstallationer, f.eks. om en enhed allerede har brugt en gratis prøveperiode, eller om en konto tidligere er slettet.
KlugKeychain 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
- Gem, læs, kontrollér og fjern værdier via nøgle
- Værdier overlever afinstallation og geninstallation af appen
- Krypteret af operativsystemet i systemets nøglering
- Én API til iOS og macOS
- Simple synkrone kald, ingen hændelser at håndtere
Understøttede platforme
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:
<extensions>
<extensionID>com.klug.keychain.Keychain</extensionID>
</extensions>
På macOS skal appen være signeret med et keychain access group-entitlement. På iOS kræves intet ekstra entitlement.
Kodeeksempler
Tre komplette flows. Alle kald er synkrone og vender straks tilbage; værdier er strenge. Fuld dokumentation →
import com.klug.keychain.Keychain; var keychain:Keychain = Keychain.getInstance(); // iOS: always true. // macOS: true only if the app is signed with a keychain access group entitlement; // the extension checks this with a test write. // Android, Windows: false, and every call is a safe no-op. if ( !keychain.isSupported ) useLocalStorage(); // your app's fallback, e.g. a SharedObject
const TRIAL_DAYS:Number = 7; if ( keychain.has( "trialStarted" ) ) { var started:Number = Number( keychain.get( "trialStarted" ) ); var days:Number = ( new Date().time - started ) / 86400000; if ( days > TRIAL_DAYS ) showPurchaseScreen(); // your app } else { // stays in the keychain after the app is uninstalled and installed again keychain.set( "trialStarted", String( new Date().time ) ); }
// set() replaces an existing value; false = not stored if ( !keychain.set( "accountId", accountId ) ) trace( "keychain: value not stored" ); // get() returns "" when nothing is stored var id:String = keychain.get( "accountId" ); if ( id == "" ) showSignIn(); // your app // sign-out: remove what the app no longer needs; // true also when the key was already gone keychain.remove( "accountId" );
API-oversigt
| Keychain.getInstance() | Returnerer den enkelte instans. |
| isSupported | Sand på iOS. På macOS sand, når appen er signeret med et keychain access group-entitlement; falsk på andre platforme. |
| set(key, value) | Gemmer en streng og erstatter en eksisterende. Returnerer true ved succes; false, hvis det ikke understøttes, eller nøgle eller værdi er null. |
| get(key) | Returnerer den gemte værdi, eller en tom streng, hvis der ingen er. |
| has(key) | Sand, hvis der er gemt en værdi for nøglen. |
| remove(key) | Fjerner værdien. Returnerer true, når nøglen ikke længere findes. |
| Lager | Generiske adgangskodeposter for din app, læsbare efter enhedens første oplåsning, også i baggrunden. |
Køb KlugKeychain
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
- Licens til én AIR-applikation
- Alle opdateringer i 12 måneder
- Svar pr. e-mail inden for 7 dage
- Licens til én AIR-applikation
- Alle opdateringer i 12 måneder
- Svar pr. e-mail inden for 48 timer
Krav
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 eller nyere |
| macOS | macOS 11 eller nyere |
| Signering (macOS) | Keychain access group-entitlement |