← Alle udvidelser

Native udvidelse

KlugDeviceType

com.klug.devicetype

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

Pålidelig registrering af telefon eller tablet, spurgt direkte hos operativsystemet, uafhængigt af orientering.

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

Oversigt

Mange apps viser et andet layout på en tablet end på en telefon. At gætte enhedsklassen ud fra skærmstørrelsen er upålideligt: resultatet kan ændre sig med orientering, skærmskalering eller vinduets størrelse.

KlugDeviceType spørger selve operativsystemet. På Android bruger den enhedens mindste skærmbredde i densitetsuafhængige pixels (600 dp eller mere er en tablet), den samme regel som Android bruger til sine egne layouts. På iOS bruger den systemets device idiom, som skelner en iPad fra en iPhone.

Svaret er det samme i portræt og landskab, uafhængigt af hvordan din app skalerer sit indhold, fra appens allerførste frame.

Funktioner

  • Selvstændig: én ANE, intet kernebibliotek eller afhængige ANE'er at tilføje
  • Telefon eller tablet, besvaret af operativsystemet
  • Stabil på tværs af orientering og appskalering
  • Den mindste skærmbredde i dp (points på iOS), til dine egne tærskler
  • Tilgængelig ved appstart, før det første layout
  • Ingen tilladelse nødvendig

Understøttede platforme

Android arm64 · armv7
iOS arm64

På andre platforme returnerer isSupported false, og deviceType er en tom streng.

Kom i gang

Tilføj udvidelsen til din applikationsdescriptor:

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

Kodeeksempler

Tre komplette flows. Gettere vender straks tilbage og kræver ingen tilladelse; hver læsning spørger operativsystemet igen. Fuld dokumentation →

1 · Vælg layoutet ved start
Layout.as
import com.klug.devicetype.DeviceType;

var type:DeviceType = DeviceType.getInstance();

// the same answer in portrait and landscape, available before the first layout
if ( !type.isSupported )     useDesktopLayout();   // other platforms: deviceType is ""
else if ( type.isTablet )   useTabletLayout();    // Android: 600 dp or more · iOS: iPad
else                        usePhoneLayout();
2 · Dine egne breakpoints
Grid.as
// dp on Android, points on iOS; -1 where not available
var sw:int = type.smallestWidthDp;
var columns:int;

if ( sw >= 720 )        columns = 3;   // large tablet
else if ( sw >= 600 )   columns = 2;   // small tablet
else                    columns = 1;   // phone, or -1: not available

buildGrid( columns );
3 · Følg en foldable, når den åbnes eller lukkes
Resize.as
import flash.events.Event;

var current:String = type.deviceType;

// every read asks the system again, nothing is cached
stage.addEventListener( Event.RESIZE, function( e:Event ):void {
    var now:String = type.deviceType;
    if ( now == current ) return;   // a rotation alone never changes it
    current = now;
    rebuildLayout( now );            // Android: opening a foldable can turn "phone" into "tablet"
});

// iOS: isTablet follows the device (iPad) and does not change;
// smallestWidthDp follows the screen the app is shown on

API-oversigt

DeviceType.getInstance()Returnerer den enkelte instans.
isSupportedSand på Android og iOS.
isTabletSand på en tablet: Android 600 dp eller mere, iOS iPad; falsk på andre platforme.
isPhoneSand på en telefon; falsk på andre platforme.
deviceType"tablet" eller "phone"; en tom streng på andre platforme.
smallestWidthDpDen mindste skærmdimension: dp på Android, points på iOS; -1, hvor den ikke er tilgængelig.

Køb KlugDeviceType

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)
iOSiOS 17 eller nyere
AndroidAndroid 6.0 (API 23) eller nyere
TilladelserIngen