← Alle udvidelser

Native udvidelse

KlugDialog

com.klug.dialog.Dialog

INGEN APM NØDVENDIG. Download og nyd. Det bliver ikke enklere.

Native dialoger til AIR-apps på Android, iOS og macOS: advarsler, dialoger med tekstfelter, der bliver over tastaturet, og en fremdriftsdialog, som din kode opdaterer og lukker.

AndroidiOSmacOS I produktion Fra €19 / år · Køb

Oversigt

AIR's indbyggede advarsel på Mac ser ud, som om den stammer fra et andet årti. KlugDialog viser den ægte vare: native macOS-advarselssheets knyttet til dit appvindue, med appikonet, systemskrifttypen og de velkendte knapstile.

Ud over simple advarsler dækker den det, desktopapps har brug for hver dag: dialoger med tekstfelter (f.eks. brugernavn og adgangskode, også som sikre felter), flere knapper med deres egne stilarter og et fremdriftssheet ("Forbinder…"), som din kode opdaterer og lukker, når arbejdet er færdigt.

Alt er asynkront: show() vender straks tilbage, og dit callback modtager den valgte knap. KlugDialog kører i Mac-versionen af vores apps, vores proof of concept.

Nyt på Android: de samme dialoger som native Android-dialoger. Tekstfelter bliver over tastaturet på alle skærme, også i landskab på tablets, hvor knapperne tidligere forsvandt bag det; adgangskoder, brugernavne og e-mailadresser får aldrig automatisk stort begyndelsesbogstav, og e-mailfelter får e-mailtastaturet. Android-versionen stabler også lange knaplister og tilbyder en simpel spinner, og kører i Android-versionen af vores apps.

Også på iOS: siden version 1.2 viser den samme API native iOS-advarsler, dialoger med tekstfelter og en fremdriftsdialog, så én kodesti betjener Android, iOS og macOS.

Funktioner

  • Selvstændig: én ANE, intet kernebibliotek eller afhængige ANE'er at tilføje
  • Native macOS-advarselssheets med op til tre knapper
  • Informations-, advarsels- og kritiske stilarter
  • Dialoger med et vilkårligt antal knapper og tekstfelter, inklusive sikre felter
  • Fremdriftssheet, der kan opdateres og lukkes fra kode
  • Dialoger kan lukkes fra kode
  • Callbacks med den valgte knap og de indtastede værdier
  • Android: felter over tastaturet, ingen automatisk store begyndelsesbogstaver i adgangskoder, e-mail- / taltastaturer, lyst og mørkt tema

Understøttede platforme

Android advarsler · tekstfelter · fremdrift · lange knaplister
iOS arm64 · advarsler · tekstfelter · fremdrift
macOS arm64 · x86_64

På andre platforme returnerer isSupported false, så din app kan falde tilbage til sine sædvanlige dialoger dér.

Kom i gang

Tilføj udvidelsen til din applikationsdescriptor:

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

Kodeeksempler

Fem komplette flows. Hvert kald vender straks tilbage; resultatet ankommer senere i dit callback, så appen aldrig blokerer, mens en dialog er åben. Fuld dokumentation →

1 · Kontrollér understøttelse og vis en simpel advarsel
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 · Stil et spørgsmål med op til tre knapper
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 · Login-dialog med tekstfelter
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 · Fremdriftsdialog, mens din kode arbejder
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 · Luk en dialog fra kode
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" );

API-oversigt

Dialog.getInstance()Returnerer den enkelte instans.
isSupportedSand på Android, iOS og macOS; falsk andre steder, f.eks. på Windows.
show(title, message, buttons, callback, style)Advarsel med op til tre knapper (standard "OK"); callback(index), -1 hvis lukket uden en knap. Returnerer false, hvis det ikke understøttes.
present(title, message, cancelable, buttons, fields, callback, id, theme)Dialog med et vilkårligt antal knapper og tekstfelter; callback(tag, values, cancelled). Angiv dit eget id for at lukke den senere; theme "light" eller "dark" på Android og iOS.
presentDismiss(id)Lukker en present()-dialog fra kode; intet callback udløses.
progressShow(id, title, message, cancelable, closeCallback, theme)Fremdriftsdialog med en spinner; closeCallback udløses én gang, når den er væk.
progressUpdate(id, message) / progressDismiss(id)Ændrer fremdriftsdialogens tekst / lukker den.
STYLE_INFO, STYLE_WARNING, STYLE_CRITICALAdvarselsstilarter til show(), brugt af macOS-advarselssheetet.
Button {label, style, tag}style: 0 default, 1 positive, 2 negative, 3 destructive, 4 cancel, 5 neutral. Android bruger dem alle, iOS bruger 3 og 4, macOS viser alle knapper ens.
Field {placeholder, secure, text, keyboardType, autocorrect, autocap}keyboardType: 0 default, 3 URL, 4 number, 5 phone, 7 e-mail, 8 decimal. autocap: 0 none (default), 1 sentences, 2 words, 3 all. De sidste tre gælder på Android og iOS.

Køb KlugDialog

En årlig licens til én AIR-applikation, med alle opdateringer i 12 måneder. Efter betaling modtager du udvidelsen, ActionScript-biblioteket og dokumentationen pr. e-mail, normalt inden for én hverdag. Licens og vilkår

Enkel
€19 / år
  • Licens til én AIR-applikation
  • Alle opdateringer i 12 måneder
  • Ingen support
Køb Enkel
Standard
€149 / år
  • Licens til én AIR-applikation
  • Alle opdateringer i 12 måneder
  • Svar pr. e-mail inden for 7 dage
Køb Standard
Prioritet
€299 / år
  • Licens til én AIR-applikation
  • Alle opdateringer i 12 måneder
  • Svar pr. e-mail inden for 48 timer
Køb Prioritet
Moms og afgifter beregnes ved checkout af Link (Stripe). Du angiver application ID'et for din AIR-app under checkout.

Krav

AIR SDK51.x (HARMAN)
AndroidAndroid 6 eller nyere
iOSiOS 13 eller nyere
macOSmacOS 11 eller nyere