← Toutes les extensions

Extension native

KlugDeviceType

com.klug.devicetype

AUCUN APM NÉCESSAIRE. Téléchargez et profitez-en. Impossible de faire plus simple.

Détection fiable téléphone ou tablette, demandée directement au système d’exploitation, indépendante de l’orientation.

iOSAndroid En production À partir de €19 / an · Acheter

Vue d’ensemble

De nombreuses applications affichent une mise en page différente sur tablette et sur téléphone. Deviner la catégorie d’appareil à partir de la taille de l’écran n’est pas fiable : le résultat peut varier selon l’orientation, la mise à l’échelle de l’affichage ou la taille de la fenêtre.

KlugDeviceType interroge le système d’exploitation lui-même. Sur Android, il utilise la plus petite largeur d’écran de l’appareil en pixels indépendants de la densité (600 dp ou plus correspond à une tablette), la même règle qu’Android applique à ses propres mises en page. Sur iOS, il utilise l’idiome d’appareil du système, qui distingue un iPad d’un iPhone.

La réponse est la même en portrait et en paysage, indépendante de la façon dont votre application met son contenu à l’échelle, dès la première image de l’application.

Fonctionnalités

  • Autonome : une seule ANE, sans bibliothèque centrale ni ANE de dépendance à ajouter
  • Téléphone ou tablette, selon le système d’exploitation
  • Stable malgré l’orientation et la mise à l’échelle de l’application
  • La plus petite largeur d’écran en dp (points sur iOS), pour vos propres seuils
  • Disponible au démarrage de l’application, avant la première mise en page
  • Aucune autorisation nécessaire

Plateformes prises en charge

Android arm64 · armv7
iOS arm64

Sur les autres plateformes, isSupported renvoie false et deviceType est une chaîne vide.

Prise en main

Ajoutez l’extension au descripteur de votre application :

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

Exemples de code

Trois flux complets. Les getters retournent immédiatement et ne nécessitent aucune autorisation ; chaque lecture interroge à nouveau le système d’exploitation. Documentation complète →

1 · Choisir la mise en page au démarrage
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 · Vos propres points de rupture
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 · Suivre un appareil pliable à l’ouverture ou à la fermeture
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

Aperçu de l’API

DeviceType.getInstance()Renvoie l’instance unique.
isSupportedVrai sur Android et iOS.
isTabletVrai sur une tablette : Android à partir de 600 dp, iPad sur iOS ; faux sur les autres plateformes.
isPhoneVrai sur un téléphone ; faux sur les autres plateformes.
deviceType"tablet" ou "phone" ; une chaîne vide sur les autres plateformes.
smallestWidthDpLa plus petite dimension de l’écran : dp sur Android, points sur iOS ; -1 si elle n’est pas disponible.

Acheter KlugDeviceType

Une licence annuelle pour une application AIR, avec toutes les mises à jour pendant 12 mois. Après le paiement, vous recevez l’extension, la bibliothèque ActionScript et la documentation par e-mail, généralement sous un jour ouvré. Licence et conditions

Simple
€19 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Sans support
Acheter Simple
Standard
€149 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Réponse par e-mail sous 7 jours
Acheter Standard
Priority
€299 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Réponse par e-mail sous 48 heures
Acheter Priority
Les taxes sont calculées lors du paiement par Link (Stripe). Vous saisissez l’identifiant d’application de votre app AIR pendant le paiement.

Prérequis

SDK AIR51.x (HARMAN)
iOSiOS 17 ou version ultérieure
AndroidAndroid 6.0 (API 23) ou version ultérieure
AutorisationsAucune