← Todas las extensiones

Extensión nativa

KlugDeviceType

com.klug.devicetype

NO NECESITAS APM. Descarga y disfruta. No puede ser más sencillo.

Detección fiable de teléfono o tableta, consultada directamente al sistema operativo, independiente de la orientación.

iOSAndroid En producción Desde €19 / año · Comprar

Resumen

Muchas apps muestran un diseño distinto en una tableta que en un teléfono. Deducir la clase de dispositivo a partir del tamaño de pantalla no es fiable: el resultado puede cambiar con la orientación, el escalado de pantalla o el tamaño de la ventana.

KlugDeviceType pregunta al propio sistema operativo. En Android usa el ancho de pantalla más pequeño del dispositivo en píxeles independientes de la densidad (600 dp o más es una tableta), la misma regla que usa Android para sus propios diseños. En iOS usa el idiom de dispositivo del sistema, que distingue un iPad de un iPhone.

La respuesta es la misma en vertical y en horizontal, independiente de cómo tu app escale su contenido, desde el primer fotograma de la app.

Funciones

  • Autónoma: una ANE, sin biblioteca central ni ANE de dependencias que añadir
  • Teléfono o tableta, según responde el sistema operativo
  • Estable ante la orientación y el escalado de la app
  • El ancho de pantalla más pequeño en dp (puntos en iOS), para tus propios umbrales
  • Disponible al iniciar la app, antes del primer diseño
  • No requiere permisos

Plataformas compatibles

Android arm64 · armv7
iOS arm64

En otras plataformas isSupported devuelve false y deviceType es una cadena vacía.

Primeros pasos

Añade la extensión al descriptor de tu aplicación:

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

Ejemplos de código

Tres flujos completos. Los getters devuelven de inmediato y no requieren permisos; cada lectura vuelve a consultar al sistema operativo. Documentación completa →

1 · Elegir el diseño al inicio
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 · Tus propios puntos de ruptura
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 · Seguir a un plegable cuando se abre o se cierra
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

Resumen de la API

DeviceType.getInstance()Devuelve la instancia única.
isSupportedVerdadero en Android e iOS.
isTabletVerdadero en una tableta: Android 600 dp o más, iPad en iOS; falso en otras plataformas.
isPhoneVerdadero en un teléfono; falso en otras plataformas.
deviceType"tablet" o "phone"; una cadena vacía en otras plataformas.
smallestWidthDpLa menor de las dimensiones de pantalla: dp en Android, puntos en iOS; -1 donde no esté disponible.

Compra KlugDeviceType

Una licencia anual para una aplicación AIR, con todas las actualizaciones durante 12 meses. Tras el pago recibes la extensión, la biblioteca ActionScript y la documentación por e-mail, normalmente en un día hábil. Licencia y términos

Simple
€19 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Sin soporte
Comprar Simple
Standard
€149 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 7 días
Comprar Standard
Priority
€299 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 48 horas
Comprar Priority
Link (Stripe) calcula los impuestos al pagar. Durante el pago indicas el ID de aplicación de tu app AIR.

Requisitos

AIR SDK51.x (HARMAN)
iOSiOS 17 o posterior
AndroidAndroid 6.0 (API 23) o posterior
PermisosNinguno