← Alla tillägg

Inbyggt tillägg

KlugDeviceType

com.klug.devicetype

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

Tillförlitlig identifiering av mobil eller surfplatta, avläst direkt från operativsystemet, oberoende av orientering.

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

Översikt

Många appar visar en annan layout på en surfplatta än på en telefon. Att gissa enhetsklassen utifrån skärmstorleken är opålitligt: resultatet kan ändras med orientering, skärmskalning eller fönstrets storlek.

KlugDeviceType frågar själva operativsystemet. På Android används enhetens minsta skärmbredd i densitetsoberoende pixlar (600 dp eller mer är en surfplatta), samma regel som Android använder för sina egna layouter. På iOS används systemets enhetsidiom, som skiljer en iPad från en iPhone.

Svaret är detsamma i stående och liggande läge, oberoende av hur din app skalar sitt innehåll, från appens första bildruta.

Funktioner

  • Fristående: ett ANE, inget kärnbibliotek eller beroende-ANE:er att lägga till
  • Mobil eller surfplatta, besvarat av operativsystemet
  • Stabilt över orientering och appskalning
  • Den minsta skärmbredden i dp (points på iOS), för dina egna tröskelvärden
  • Tillgängligt vid appstart, före den första layouten
  • Ingen behörighet behövs

Plattformar som stöds

Android arm64 · armv7
iOS arm64

På andra plattformar returnerar isSupported false och deviceType är en tom sträng.

Kom igång

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

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

Kodexempel

Tre kompletta flöden. Getters returnerar direkt och kräver ingen behörighet; varje läsning frågar operativsystemet på nytt. Fullständig dokumentation →

1 · Välj layout vid 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 · Dina egna brytpunkter
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ölj en vikbar enhet när den öppnas eller stängs
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-översikt

DeviceType.getInstance()Returnerar den enda instansen.
isSupportedTrue på Android och iOS.
isTabletTrue på en surfplatta: Android 600 dp eller mer, iOS iPad; false på andra plattformar.
isPhoneTrue på en telefon; false på andra plattformar.
deviceType"tablet" eller "phone"; en tom sträng på andra plattformar.
smallestWidthDpDen mindre skärmdimensionen: dp på Android, points på iOS; -1 där den inte finns.

Köp KlugDeviceType

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)
iOSiOS 17 eller senare
AndroidAndroid 6.0 (API 23) eller senare
BehörigheterInga