← Alla tillägg

Inbyggt tillägg

KlugDialog

com.klug.dialog.Dialog

INGEN APM BEHÖVS. Ladda ner och njut. Det blir inte enklare än så.

Inbyggda dialoger för AIR-appar på Android, iOS och macOS: varningar, dialoger med textfält som stannar ovanför tangentbordet och en förloppsdialog som din kod uppdaterar och stänger.

AndroidiOSmacOS I produktion Från €19 / år · Köp

Översikt

AIR:s inbyggda varning på Mac ser ut som om den kom från ett annat årtionde. KlugDialog visar det äkta: inbyggda macOS-varningsark kopplade till appfönstret, med appikonen, systemtypsnittet och de välbekanta knappstilarna.

Utöver enkla varningar täcker det vad skrivbordsappar behöver varje dag: dialoger med textfält (till exempel användarnamn och lösenord, även som säkra fält), flera knappar med egna stilar och ett förloppsark ("Ansluter…") som din kod uppdaterar och stänger när arbetet är klart.

Allt är asynkront: show() returnerar direkt och din callback får den valda knappen. KlugDialog körs i Mac-versionen av våra appar, vårt proof of concept.

Nytt på Android: samma dialoger som inbyggda Android-dialoger. Textfält stannar ovanför tangentbordet på alla skärmar, även i liggande läge på surfplattor, där knapparna tidigare försvann bakom det; lösenord, användarnamn och e-postadresser får aldrig automatiska versaler, och e-postfält får e-posttangentbordet. Android-versionen staplar också långa knapplistor, erbjuder en enkel spinner och körs i Android-versionen av våra appar.

Även på iOS: sedan version 1.2 visar samma API inbyggda iOS-varningar, dialoger med textfält och en förloppsdialog, så att en enda kodväg täcker Android, iOS och macOS.

Funktioner

  • Fristående: ett ANE, inget kärnbibliotek eller beroende-ANE:er att lägga till
  • Inbyggda macOS-varningsark med upp till tre knappar
  • Stilarna informativ, varning och kritisk
  • Dialoger med valfritt antal knappar och textfält, även säkra fält
  • Förloppsark som kan uppdateras och stängas från kod
  • Dialoger kan stängas från kod
  • Callbacks med vald knapp och inmatade värden
  • Android: fält ovanför tangentbordet, inga automatiska versaler i lösenord, tangentbord för e-post / siffror, ljust och mörkt tema

Plattformar som stöds

Android varningar · textfält · förlopp · långa knapplistor
iOS arm64 · varningar · textfält · förlopp
macOS arm64 · x86_64

På andra plattformar returnerar isSupported false, så att din app kan falla tillbaka på sina vanliga dialoger där.

Kom igång

Lägg till tillägget i din applikationsbeskrivning (application descriptor):

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

Kodexempel

Fem kompletta flöden. Varje anrop returnerar direkt; resultatet kommer senare i din callback, så appen blockeras aldrig medan en dialog är öppen. Fullständig dokumentation →

1 · Kontrollera stöd och visa en enkel varning
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 · Ställ en fråga med upp till tre knappar
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 · Inloggningsdialog med textfält
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 · Förloppsdialog medan din kod arbetar
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 · Stäng en dialog från kod
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-översikt

Dialog.getInstance()Returnerar den enda instansen.
isSupportedTrue på Android, iOS och macOS; false på övriga, till exempel Windows.
show(title, message, buttons, callback, style)Varning med upp till tre knappar (standard "OK"); callback(index), -1 om den stängdes utan knapp. Returnerar false om det inte stöds.
present(title, message, cancelable, buttons, fields, callback, id, theme)Dialog med valfritt antal knappar och textfält; callback(tag, values, cancelled). Ange ditt eget id för att stänga den senare; theme "light" eller "dark" på Android och iOS.
presentDismiss(id)Stänger en present()-dialog från kod; ingen callback utlöses.
progressShow(id, title, message, cancelable, closeCallback, theme)Förloppsdialog med en spinner; closeCallback utlöses en gång när den är borta.
progressUpdate(id, message) / progressDismiss(id)Ändrar förloppsdialogens text / stänger den.
STYLE_INFO, STYLE_WARNING, STYLE_CRITICALVarningsstilar för show(), som används av macOS-varningsarket.
Button {label, style, tag}style: 0 default, 1 positive, 2 negative, 3 destructive, 4 cancel, 5 neutral. Android använder alla, iOS använder 3 och 4, macOS visar alla knappar likadant.
Field {placeholder, secure, text, keyboardType, autocorrect, autocap}keyboardType: 0 default, 3 URL, 4 number, 5 phone, 7 e-mail, 8 decimal. autocap: 0 none (standard), 1 sentences, 2 words, 3 all. De tre sista gäller på Android och iOS.

Köp KlugDialog

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

Enkel
€19 / år
  • Licens för en AIR-applikation
  • Alla uppdateringar i 12 månader
  • Ingen support
Köp Enkel
Standard
€149 / år
  • Licens för en AIR-applikation
  • Alla uppdateringar i 12 månader
  • Svar via e-post inom 7 dagar
Köp Standard
Prioritet
€299 / år
  • Licens för en AIR-applikation
  • Alla uppdateringar i 12 månader
  • Svar via e-post inom 48 timmar
Köp Prioritet
Skatter beräknas i kassan av Link (Stripe). Du anger application ID för din AIR-app under köpet.

Krav

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