← Kaikki laajennukset

Natiivilaajennus

KlugSystem

com.klug.system

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

Järjestelmäpalvelut, joita jokainen sovellus tarvitsee, yhdessä pienessä laajennuksessa: avaa verkkosivuja sovelluksen sisäisessä selaimessa, tiedä onko laite verkossa ja onko yhteys Wi-Fi vai mobiilidata, vahvista käyttäjä sormenjäljellä tai Face ID:llä ja pyydä arvostelua kaupassa.

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

Yleiskatsaus

Ohjesivujen, ehtojen ja tietosuojakäytäntöjen tulisi avautua sovelluksen sisällä eikä heittää käyttäjää ulos selaimeen. Verkon tila ratkaisee, varoitetaanko ennen striimausta mobiilidatalla. Sormenjälki- tai Face ID -tarkistus korvaa salasanan kirjoittamisen jaetulla laitteella. KlugSystem kattaa kaikki kolme järjestelmän omilla komponenteilla.

Sovelluksen sisäinen selain on Chrome Custom Tab Androidilla (ei tarvitse lisäkirjastoa) ja SFSafariViewController iOS:llä, työkalupalkin väri omasi; sovellus saa tiedon, kun käyttäjä palaa takaisin. Verkon tila raportoi tavoitettavuuden sekä sen, onko yhteys Wi-Fi vai mobiilidata, ja lähettää tapahtuman muutoksen yhteydessä. Biometriikka käyttää BiometricPromptia Android 9+:lla ja LocalAuthenticationia iOS:llä; virheet tulevat samoilla virhekoodeilla molemmilla alustoilla, joten yksi käsittelijä toimii kaikkialla.

KlugSystem on käytössä sovellustemme seuraavassa julkaisussa, todisteenamme toimivuudesta, ohjesivuilla, mobiilidatavaroituksessa ja laitteen uloskirjautumisen vahvistamisessa.

Ominaisuudet

  • Itsenäinen: yksi ANE, ei ydinkirjastoa tai riippuvaisia ANE-laajennuksia lisättäväksi
  • Sovelluksen sisäinen selain: Chrome Custom Tab (Android) / SFSafariViewController (iOS), työkalupalkin väri, sulkemistapahtuma
  • Verkko: tavoitettavissa, Wi-Fi vai mobiilidata, muutostapahtumat (ConnectivityManager / NWPathMonitor)
  • Biometriikka: sormenjälki sekä Face ID / Touch ID omalla syyteksti- ja peruutuspainikkeen tekstilläsi
  • Samat virhekoodit molemmilla alustoilla (peruutus, varavaihtoehto, lukittu, ei rekisteröity)
  • Ei kolmannen osapuolen kirjastoja; Androidilla kauppa-arvostelu käyttää Googlen omaa Play-arvostelukirjastoa
  • isSupported-tarkistus, joten sama koodi toimii kaikilla alustoilla

Tuetut alustat

iOS selain · verkko · Face ID / Touch ID · arm64
Android selain · verkko · sormenjälki (Android 9+)

Laitteet, joissa ei ole biometristä tunnistinta, raportoivat canAuthenticate = false, joten sovelluksesi voi siirtyä salasanaan.

Aloitus

Lisää laajennus sovelluksesi descriptoriin:

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

Android: lisää USE_BIOMETRIC, USE_FINGERPRINT ja ACCESS_NETWORK_STATE manifestin lisäyksiin. iOS: lisää NSFaceIDUsageDescription InfoAdditions-osioon.

Koodiesimerkit

Viisi täydellistä esimerkkiä. Jokainen kutsu palaa heti; selaimen, verkon ja biometriikan tulokset saapuvat KlugSystem.*-tyyppisinä tapahtumina. Koko dokumentaatio →

1 · Avaa ohjesivu sovelluksen sisäisessä selaimessa
Help.as
import com.klug.system.KlugSystem;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.navigateToURL;

var sys:KlugSystem = KlugSystem.getInstance();
sys.addEventListener( KlugSystem.BROWSER_CLOSED, onBrowserClosed );

function openHelp():void
{
    var url:String = "https://example.com/help";
    // false: not supported here, or no browser could open the page
    if ( !sys.isSupported || !sys.openBrowser( url, 0x2B2B2B ) )   // toolbar 0xRRGGBB
        navigateToURL( new URLRequest( url ) );
}

function onBrowserClosed( e:Event ):void
{
    // iOS: the user tapped Done. Android: your app is in the foreground again.
    refreshAccount();   // your app
}
2 · Varoita ennen striimausta mobiilidatalla
Network.as
sys.addEventListener( KlugSystem.NETWORK_CHANGE, onNetworkChange );
sys.startNetworkWatch();   // the first event usually arrives right away

function onNetworkChange( e:Event ):void
{
    // the event carries no detail: ask for the current state
    if ( !sys.isReachable() )  showOfflineBanner();       // your app
    else if ( sys.isWWAN() )   showMobileDataWarning();   // on mobile data
    else                       hideBanners();
}
3 · Vahvista käyttäjä sormenjäljellä tai Face ID:llä
Confirm.as
sys.addEventListener( KlugSystem.AUTH_SUCCESS, onAuthOk );
sys.addEventListener( KlugSystem.AUTH_FAILED,  onAuthFailed );

function confirmLogout():void
{
    // iOS: 1 = Touch ID, 2 = Face ID.
    // Android 9+: 1 = any enrolled biometric; 2 is always false there.
    var bio:Boolean = sys.canAuthenticate( KlugSystem.BIOMETRY_FINGERPRINT )
                   || sys.canAuthenticate( KlugSystem.BIOMETRY_FACE );

    if ( !bio || !sys.authenticate( "Confirm to log out", "Cancel" ) )
        askForPassword();   // no sensor, nothing enrolled, or Android below 9
}

function onAuthOk( e:Event ):void
{
    logOut();   // your app
}

function onAuthFailed( e:Event ):void
{
    // iOS error numbers on both platforms
    if ( sys.lastAuthError == -2 ) return;   // the user tapped Cancel
    askForPassword();   // -3 fallback (iOS), -8 locked out, -4 system cancel, -1 failed
}
4 · Pyydä arvostelua kaupassa
Rating.as
// after a good moment, for example the tenth successful session
if ( sessionCount == 10 )   // your app's counter
    sys.requestReview();

// the store decides whether the dialog really appears:
// iOS at most 3 times in 365 days and never in TestFlight;
// Google Play has its own quota and never shows it for sideloaded installs
5 · Siisti sulkeminen
Shutdown.as
function leaveScreen():void
{
    sys.stopNetworkWatch();
    sys.cancelAuthenticate();   // closes a running prompt; AUTH_FAILED may follow

    sys.removeEventListener( KlugSystem.NETWORK_CHANGE, onNetworkChange );
    sys.removeEventListener( KlugSystem.AUTH_SUCCESS, onAuthOk );
    sys.removeEventListener( KlugSystem.AUTH_FAILED, onAuthFailed );
}

Rajapintayleiskatsaus

KlugSystem.getInstance()Palauttaa yksittäisen instanssin.
isSupportedTrue siellä, missä natiiviosa on mukana (iOS ja Android).
openBrowser(url, toolbarColor)Avaa sovelluksen sisäisen selaimen, työkalupalkin väri 0xRRGGBB (oletus valkoinen). Palauttaa false, jos avaaminen ei onnistunut; BROWSER_CLOSED, kun käyttäjä palaa takaisin.
isReachable() / isWWAN()Onko verkossa lainkaan / mobiilidatalla.
startNetworkWatch() / stopNetworkWatch()NETWORK_CHANGE jokaisesta muutoksesta; lue isReachable() ja isWWAN() käsittelijässä.
canAuthenticate(type)True, jos biometriikka on käytettävissä ja rekisteröity. iOS: BIOMETRY_FINGERPRINT = Touch ID, BIOMETRY_FACE = Face ID. Android 9+: BIOMETRY_FINGERPRINT = mikä tahansa biometriikka, BIOMETRY_FACE aina false.
authenticate(reason, cancelLabel)Näyttää järjestelmän kehotteen; AUTH_SUCCESS tai AUTH_FAILED. Palauttaa false, jos kehotetta ei voida näyttää (Android alle 9).
lastAuthErrorViimeisimmän AUTH_FAILED-tapahtuman virhe, iOS:n numerot molemmilla alustoilla: -1 epäonnistui, -2 peruutus, -3 varavaihtoehto, -4 järjestelmän peruutus, -6 ei saatavilla, -7 ei rekisteröity, -8 lukittu.
cancelAuthenticate()Sulkee käynnissä olevan kehotteen.
requestReview()Pyytää App Storelta tai Google Playltä sovelluksen sisäistä arvosteluikkunaa; kauppa päättää, näytetäänkö se.
BIOMETRY_FINGERPRINT, BIOMETRY_FACEcanAuthenticate()-kutsun tyypit: 1 ja 2.

Tapahtumat

BROWSER_CLOSEDSovelluksen sisäinen selain suljetaan: Done iOS:llä, takaisin sovellukseesi Androidilla.
NETWORK_CHANGEVerkko muuttui (startNetworkWatch()-kutsun jälkeen).
AUTH_SUCCESSKäyttäjä vahvistettiin.
AUTH_FAILEDEi vahvistusta; syy on lastAuthError-arvossa.

Osta KlugSystem

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)
iOSiOS 13 tai uudempi
AndroidAndroid 6 tai uudempi; biometriikka Android 9 tai uudempi
OikeudetAndroid: USE_BIOMETRIC, USE_FINGERPRINT, ACCESS_NETWORK_STATE · iOS: NSFaceIDUsageDescription