Oversikt
KlugKeychain lagrer små verdier, som flagg, tokens eller ID-er, i nøkkelringen på iOS og macOS. I motsetning til vanlig applagring beholder nøkkelringen disse verdiene når appen avinstalleres og installeres på nytt.
Det gjør den til et varig ankerpunkt for ting en app må huske på tvers av nye installasjoner, for eksempel om en enhet allerede har brukt en gratis prøveperiode, eller om en konto er slettet tidligere.
KlugKeychain brukes daglig i appene våre, vårt proof of concept.
Funksjoner
- Selvstendig: én ANE, ingen kjernebibliotek eller avhengige ANE-er å legge til
- Lagre, les, sjekk og fjern verdier med nøkkel
- Verdiene overlever avinstallering og ny installasjon av appen
- Kryptert av operativsystemet i systemets nøkkelring
- Ett API for iOS og macOS
- Enkle synkrone kall, ingen hendelser å håndtere
Støttede plattformer
På andre plattformer returnerer isSupported false, slik at den samme koden kan bli værende i en plattformuavhengig app.
Kom i gang
Legg utvidelsen til i applikasjonsbeskrivelsen din:
<extensions>
<extensionID>com.klug.keychain.Keychain</extensionID>
</extensions>
På macOS må appen signeres med et keychain access group-entitlement. På iOS trengs ikke noe ekstra entitlement.
Kodeeksempler
Tre komplette flyter. Alle kall er synkrone og returnerer med en gang; verdiene er strenger. Full dokumentasjon →
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-oversikt
| Keychain.getInstance() | Returnerer den ene instansen. |
| isSupported | True på iOS. På macOS true når appen er signert med et keychain access group-entitlement; false på andre plattformer. |
| set(key, value) | Lagrer en streng og erstatter en eksisterende. Returnerer true ved suksess; false hvis det ikke støttes eller nøkkel eller verdi er null. |
| get(key) | Returnerer den lagrede verdien, eller en tom streng hvis det ikke finnes noen. |
| has(key) | True hvis en verdi er lagret for nøkkelen. |
| remove(key) | Fjerner verdien. Returnerer true når nøkkelen ikke lenger finnes. |
| Lagring | Generiske passordelementer for appen din, lesbare etter første opplåsing av enheten, også i bakgrunnen. |
Kjøp KlugKeychain
En årslisens for én AIR-applikasjon, med alle oppdateringer i 12 måneder. Etter betaling mottar du utvidelsen, ActionScript-biblioteket og dokumentasjonen på e-post, vanligvis innen én virkedag. Lisens og vilkår
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Ingen støtte
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Svar på e-post innen 7 dager
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Svar på e-post innen 48 timer
Krav
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 eller nyere |
| macOS | macOS 11 eller nyere |
| Signering (macOS) | Keychain access group-entitlement |