Oversikt
Mange apper viser en annen layout på et nettbrett enn på en telefon. Å gjette enhetsklassen ut fra skjermstørrelsen er upålitelig: resultatet kan endre seg med orientering, skjermskalering eller vindusstørrelse.
KlugDeviceType spør selve operativsystemet. På Android bruker den enhetens minste skjermbredde i tetthetsuavhengige piksler (600 dp eller mer er et nettbrett), den samme regelen Android bruker for sine egne layouter. På iOS bruker den systemets device idiom, som skiller en iPad fra en iPhone.
Svaret er det samme i stående og liggende format, uavhengig av hvordan appen din skalerer innholdet, fra appens første bilde.
Funksjoner
- Selvstendig: én ANE, ingen kjernebibliotek eller avhengige ANE-er å legge til
- Telefon eller nettbrett, besvart av operativsystemet
- Stabilt på tvers av orientering og appskalering
- Den minste skjermbredden i dp (points på iOS), for dine egne terskler
- Tilgjengelig ved appstart, før første layout
- Ingen tillatelse nødvendig
Støttede plattformer
På andre plattformer returnerer isSupported false, og deviceType er en tom streng.
Kom i gang
Legg utvidelsen til i applikasjonsbeskrivelsen din:
<extensions>
<extensionID>com.klug.devicetype</extensionID>
</extensions>
Kodeeksempler
Tre komplette flyter. Gettere returnerer med en gang og trenger ingen tillatelse; hver lesing spør operativsystemet på nytt. Full dokumentasjon →
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();
// 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 );
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-oversikt
| DeviceType.getInstance() | Returnerer den ene instansen. |
| isSupported | True på Android og iOS. |
| isTablet | True på et nettbrett: Android 600 dp eller mer, iOS iPad; false på andre plattformer. |
| isPhone | True på en telefon; false på andre plattformer. |
| deviceType | "tablet" eller "phone"; en tom streng på andre plattformer. |
| smallestWidthDp | Den minste skjermdimensjonen: dp på Android, points på iOS; -1 der den ikke er tilgjengelig. |
Kjøp KlugDeviceType
En årslisens for én AIR-applikasjon, med alle oppdateringer i 12 måneder. Etter betaling mottar du utvidelsen, ActionScript-biblioteket og dokumentasjonen på e-post, vanligvis innen én virkedag. Lisens og vilkår
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Ingen støtte
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Svar på e-post innen 7 dager
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Svar på e-post innen 48 timer
Krav
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 eller nyere |
| Android | Android 6.0 (API 23) eller nyere |
| Tillatelser | Ingen |