← Kaikki laajennukset

Natiivilaajennus

KlugDialog

com.klug.dialog.Dialog

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

Natiivit dialogit AIR-sovelluksille Androidilla, iOS:llä ja macOS:llä: ilmoitusikkunat, näppäimistön yläpuolelle jäävät tekstikenttädialogit sekä edistymisdialogi, jota koodisi päivittää ja sulkee.

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

Yleiskatsaus

AIR:n sisäänrakennettu ilmoitusikkuna Macilla näyttää toiselta vuosikymmeneltä. KlugDialog näyttää aidon: natiivit macOS-ilmoitusnäkymät kiinnitettyinä sovellusikkunaasi, sovelluskuvakkeella, järjestelmäfontilla ja tutuilla painiketyyleillä.

Yksinkertaisten ilmoitusten lisäksi se kattaa sen, mitä työpöytäsovellukset tarvitsevat päivittäin: tekstikenttädialogit (esimerkiksi käyttäjänimi ja salasana, myös suojattuina kenttinä), useita painikkeita omilla tyyleillään ja edistymisnäkymä ("Yhdistetään…"), jota koodisi päivittää ja sulkee työn valmistuttua.

Kaikki on asynkronista: show() palaa heti, ja takaisinkutsusi saa valitun painikkeen. KlugDialog toimii sovellustemme Mac-versiossa, todisteenamme toimivuudesta.

Uutta Androidilla: samat dialogit natiiveina Android-dialogeina. Tekstikentät pysyvät näppäimistön yläpuolella jokaisella näytöllä, myös tableteilla vaaka-asennossa, jossa painikkeet ennen katosivat sen taakse; salasanoja, käyttäjänimiä ja sähköpostiosoitteita ei koskaan kirjoiteta automaattisesti isoilla alkukirjaimilla, ja sähköpostikentät saavat sähköpostinäppäimistön. Android-versio myös pinoaa pitkät painikeluettelot ja tarjoaa yksinkertaisen pyörijän (spinner), ja se toimii sovellustemme Android-versiossa.

Myös iOS:llä: versiosta 1.2 alkaen sama rajapinta näyttää natiivit iOS-ilmoitukset, tekstikenttädialogit ja edistymisdialogin, joten yksi koodipolku palvelee Androidia, iOS:ää ja macOS:ää.

Ominaisuudet

  • Itsenäinen: yksi ANE, ei ydinkirjastoa tai riippuvaisia ANE-laajennuksia lisättäväksi
  • Natiivit macOS-ilmoitusnäkymät, enintään kolme painiketta
  • Tiedotus-, varoitus- ja kriittiset tyylit
  • Dialogit, joissa on mielivaltainen määrä painikkeita ja tekstikenttiä, myös suojatut kentät
  • Edistymisnäkymä, jota voi päivittää ja sulkea koodista
  • Dialogit voi sulkea koodista
  • Takaisinkutsut valitulla painikkeella ja syötetyillä arvoilla
  • Android: kentät näppäimistön yläpuolella, ei automaattisesti isoin alkukirjaimin kirjoitettuja salasanoja, sähköposti- ja numeronäppäimistöt, vaalea ja tumma teema

Tuetut alustat

Android ilmoitukset · tekstikentät · edistyminen · pitkät painikeluettelot
iOS arm64 · ilmoitukset · tekstikentät · edistyminen
macOS arm64 · x86_64

Muilla alustoilla isSupported palauttaa false, joten sovelluksesi voi siirtyä käyttämään tavallisia dialogejaan.

Aloitus

Lisää laajennus sovelluksesi descriptoriin:

app.xml
<extensions>
    <extensionID>com.klug.dialog.Dialog</extensionID>
</extensions>

Koodiesimerkit

Viisi täydellistä esimerkkiä. Jokainen kutsu palaa heti; tulos saapuu myöhemmin takaisinkutsuusi, joten sovellus ei koskaan lukitu dialogin ollessa auki. Koko dokumentaatio →

1 · Tarkista tuki ja näytä yksinkertainen ilmoitus
Setup.as
import com.klug.dialog.Dialog;

var dialog:Dialog = Dialog.getInstance();

if ( dialog.isSupported )
{
    dialog.show( "Saved", "The recording is in your library." );   // one "OK" button
}
else
{
    showAppAlert( "Saved" );   // your app's own fallback dialog, e.g. on Windows
}
2 · Esitä kysymys enintään kolmella painikkeella
Confirm.as
dialog.show( "Delete recording?", "This cannot be undone.",
    [ "Delete", "Keep" ],
    function( index:int ):void
    {
        // index = position in the buttons array;
        // -1 = closed without a button, e.g. the Android back key
        if ( index == 0 ) deleteRecording();   // your app
    },
    Dialog.STYLE_WARNING );   // alert style of the macOS sheet
3 · Kirjautumisdialogi tekstikentillä
SignIn.as
var buttons:Array = [
    { label:"Cancel",  style:4, tag:0 },   // style 4 = cancel, 3 = destructive
    { label:"Sign in", style:0, tag:1 }
];
var fields:Array = [
    { placeholder:"E-mail", text:lastEmail, keyboardType:7 },   // 7 = e-mail keyboard
    { placeholder:"Password", secure:true }                 // never auto-capitalised
];

dialog.present( "Sign in", "Please enter your account.", true, buttons, fields,
    function( tag:int, values:Array, cancelled:Boolean = false ):void
    {
        if ( cancelled ) return;   // closed without a button (tag -1)
        if ( tag == 1 ) signIn( values[0], values[1] );   // values in field order
    },
    null, "dark" );   // theme on Android and iOS; macOS follows the system
4 · Edistymisdialogi koodisi työskennellessä
Connect.as
// your own id: the same dialog is updated and closed with it
dialog.progressShow( "connect", "Connecting", "Contacting the server…", false,
    function():void { trace( "progress dialog closed" ); } );   // fires once

dialog.progressUpdate( "connect", "Signing in…" );

// when the work is done, or has failed
dialog.progressDismiss( "connect" );
5 · Sulje dialogi koodista
Waiting.as
// pass your own id as the 7th parameter to close the dialog later
dialog.present( "Waiting for the camera", "Tap Cancel to stop waiting.", false,
    [ { label:"Cancel", style:4, tag:0 } ], null,
    function( tag:int, values:Array ):void { stopWaiting(); },   // your app
    "waitCamera" );

// the camera has answered: close the dialog, no callback fires
dialog.presentDismiss( "waitCamera" );

Rajapintayleiskatsaus

Dialog.getInstance()Palauttaa yksittäisen instanssin.
isSupportedTrue Androidilla, iOS:llä ja macOS:llä; muualla false, esimerkiksi Windowsilla.
show(title, message, buttons, callback, style)Ilmoitus enintään kolmella painikkeella (oletus "OK"); callback(index), -1 jos suljettu ilman painiketta. Palauttaa false, jos ei tuettu.
present(title, message, cancelable, buttons, fields, callback, id, theme)Dialogi, jossa on mielivaltainen määrä painikkeita ja tekstikenttiä; callback(tag, values, cancelled). Anna oma id, jotta voit sulkea sen myöhemmin; teema "light" tai "dark" Androidilla ja iOS:llä.
presentDismiss(id)Sulkee present()-dialogin koodista; takaisinkutsua ei käynnistetä.
progressShow(id, title, message, cancelable, closeCallback, theme)Edistymisdialogi pyörijällä (spinner); closeCallback käynnistyy kerran, kun dialogi on poistunut.
progressUpdate(id, message) / progressDismiss(id)Muuttaa edistymisdialogin tekstiä / sulkee sen.
STYLE_INFO, STYLE_WARNING, STYLE_CRITICALIlmoitustyylit show()-kutsulle, macOS-ilmoitusnäkymä käyttää niitä.
Button {label, style, tag}style: 0 oletus, 1 myönteinen, 2 kielteinen, 3 tuhoava, 4 peruutus, 5 neutraali. Android käyttää kaikkia, iOS käyttää arvoja 3 ja 4, macOS näyttää kaikki painikkeet samanlaisina.
Field {placeholder, secure, text, keyboardType, autocorrect, autocap}keyboardType: 0 oletus, 3 URL, 4 numero, 5 puhelin, 7 sähköposti, 8 desimaali. autocap: 0 ei mitään (oletus), 1 lauseet, 2 sanat, 3 kaikki. Kolme viimeistä pätevät Androidilla ja iOS:llä.

Osta KlugDialog

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)
AndroidAndroid 6 tai uudempi
iOSiOS 13 tai uudempi
macOSmacOS 11 tai uudempi