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
Muilla alustoilla isSupported palauttaa false, joten sovelluksesi voi siirtyä käyttämään tavallisia dialogejaan.
Aloitus
Lisää laajennus sovelluksesi descriptoriin:
<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 →
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 }
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
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
// 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" );
// 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. |
| isSupported | True 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_CRITICAL | Ilmoitustyylit 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
- Lisenssi yhdelle AIR-sovellukselle
- Kaikki päivitykset 12 kuukauden ajan
- Ei tukea
- Lisenssi yhdelle AIR-sovellukselle
- Kaikki päivitykset 12 kuukauden ajan
- Vastaus sähköpostitse 7 päivän kuluessa
- Lisenssi yhdelle AIR-sovellukselle
- Kaikki päivitykset 12 kuukauden ajan
- Vastaus sähköpostitse 48 tunnin kuluessa
Vaatimukset
| AIR SDK | 51.x (HARMAN) |
| Android | Android 6 tai uudempi |
| iOS | iOS 13 tai uudempi |
| macOS | macOS 11 tai uudempi |