Översikt
KlugKeychain lagrar små värden, som flaggor, token eller ID:n, i nyckelringen på iOS och macOS. Till skillnad från vanlig applagring behåller nyckelringen de här värdena när appen avinstalleras och installeras igen.
Det gör den till ett varaktigt ankare för sådant en app behöver komma ihåg över ominstallationer, till exempel om en enhet redan har använt en gratis provperiod eller om ett konto har raderats tidigare.
KlugKeychain används dagligen i våra appar, vårt proof of concept.
Funktioner
- Fristående: ett ANE, inget kärnbibliotek eller beroende-ANE:er att lägga till
- Spara, läs, kontrollera och ta bort värden via nyckel
- Värdena finns kvar när appen avinstalleras och installeras om
- Krypteras av operativsystemet i systemets nyckelring
- Ett API för iOS och macOS
- Enkla synkrona anrop, inga händelser att hantera
Plattformar som stöds
På andra plattformar returnerar isSupported false, så att samma kod kan ligga kvar i en plattformsoberoende app.
Kom igång
Lägg till tillägget i din applikationsbeskrivning (application descriptor):
<extensions>
<extensionID>com.klug.keychain.Keychain</extensionID>
</extensions>
På macOS måste appen vara signerad med en entitlement för keychain access group. På iOS behövs ingen extra entitlement.
Kodexempel
Tre kompletta flöden. Alla anrop är synkrona och returnerar direkt; värdena är strängar. Fullständig 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-översikt
| Keychain.getInstance() | Returnerar den enda instansen. |
| isSupported | True på iOS. På macOS true när appen är signerad med en keychain access group-entitlement; false på övriga plattformar. |
| set(key, value) | Sparar en sträng och ersätter en befintlig. Returnerar true vid lyckat resultat; false om det inte stöds eller om key eller value är null. |
| get(key) | Returnerar det sparade värdet, eller en tom sträng om det saknas. |
| has(key) | True om ett värde är sparat för nyckeln. |
| remove(key) | Tar bort värdet. Returnerar true när nyckeln inte längre finns. |
| Lagring | Generic password-poster för din app, läsbara efter enhetens första upplåsning, även i bakgrunden. |
Köp KlugKeychain
En årslicens för en AIR-applikation, med alla uppdateringar i 12 månader. Efter betalning får du tillägget, ActionScript-biblioteket och dokumentationen via e-post, vanligtvis inom en arbetsdag. Licens och villkor
- Licens för en AIR-applikation
- Alla uppdateringar i 12 månader
- Ingen support
- Licens för en AIR-applikation
- Alla uppdateringar i 12 månader
- Svar via e-post inom 7 dagar
- Licens för en AIR-applikation
- Alla uppdateringar i 12 månader
- Svar via e-post inom 48 timmar
Krav
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 eller senare |
| macOS | macOS 11 eller senare |
| Signering (macOS) | Entitlement för keychain access group |