DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer pour iOS (iPhone / iPad)
  • Présentation
  • Comment créer une procédure en code Objective C ?
  • Remarques importantes
  • Utiliser l'UIView d'une fenêtre
  • Comment appeler des classes Objective C ?
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Il est possible de saisir du code Objective C dans les applications iPhone/iPad générées avec WINDEV Mobile.
Vous pouvez ainsi créer des procédures globales entièrement en code Objective C.
Comment créer une procédure en code Objective C ?
Pour saisir le code d'une procédure globale en code Objective C :
  1. Créez une nouvelle procédure globale (par exemple option "Nouvelle procédure globale" du menu contextuel des collections de procédures dans le volet "Explorateur de projet"). Indiquez le nom de cette procédure.
    Attention : le nom de la procédure ne doit pas contenir de caractères accentués.
  2. La procédure est créée sous l'éditeur de code.
  3. Dans l'entête de la procédure, cliquez sur le logo "WL" pour changer le type de code.
  4. Dans la liste qui s'ouvre, sélectionnez "ObjC".
  5. Le bandeau devient bleu clair et les caractères "ObjC" apparaissent devant le nom de la procédure. Le code existant est mis en commentaires.
Remarques :
  • Pour revenir en code WLangage, il suffit de cliquer sur "ObjC" dans le bandeau de la procédure et de sélectionner "WLangage".
  • Le nom de la procédure Objective C ne doit pas contenir d'accents. Dans le cas contraire, les accents sont supprimés lors du passage au code Objective C.

Remarques importantes

  • Le passage de paramètres à une procédure Objective C est réalisé automatiquement par valeur.
  • Si le paramètre est un pointeur, le passage de paramètres est réalisé par valeur, mais il est possible d'agir sur le contenu du pointeur dans la procédure.
  • Les paramètres des procédures écrites en code Objective C doivent obligatoirement être typées avec un type primitif (entier, réel, chaîne, ...). Les types gérés sont :
    • char
    • wchar_t
    • float
    • double
    • int
    • long
    • short
    • void
    • bool
    • BOOL
  • Evitez les commentaires de type "/*". Les commentaires WLangage ("//") sont gérés.

Utiliser l'UIView d'une fenêtre

Il n'est pas possible d'utiliser directement l'UIView d'une fenêtre. Cependant, la fonction Handle permet d'obtenir un pointeur sur l'UIView actuel.
Voici un exemple de code Objective C permettant de lire une vidéo :
#import <MediaPlayer/MediaPlayer.h>

void LireVideo(void* currentView, NSString* VideoURL)
{
   
MPMoviePlayerController *moviePlayer;
NSURL *movieURL;
UIView *tmpView = (UIView*)currentView;
   
movieURL = [NSURL URLWithString:VideoURL];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[tmpView addSubview:moviePlayer.view];
moviePlayer.fullscreen = YES;
[moviePlayer play];
}
et l'appel correspondant en WLangage :
LireVideo(Handle(MaFenêtre, HandleUIViewController), "http://mavideo.com/mavideo.mp4")
Comment appeler des classes Objective C ?
Si votre procédure en code Objective C utilise des classes Objective C :
  1. Ajoutez les imports correspondants aux classes Objective C utilisées dans le code Objective C natif saisi (grâce au mot-clé "Import"). Il est recommandé d'ajouter ces imports avant la déclaration de la méthode. Par exemple :
  2. Si les classes Objective C sont présentes dans des librairies spécifiques, intégrez ces librairies dans l'application lors de la génération de l'application iPhone/iPad, grâce à l'écran suivant de l'assistant :
Remarque : Ces librairies doivent être accessibles depuis le PC utilisé pour la génération de l'application iPhone/iPad.
Liste des exemples associés :
WM Système Exemples multiplateforme (WINDEV Mobile) : WM Système
[ + ] Cette application est un exemple didactique montrant quelques unes des fonctionnalités de WINDEV Mobile pour Android/iOS.
Les fonctions système utilisées sont :
- NFC
- Champ Multimédia
- Luminosité
- Volume
- WIFI
- Bluetooth
- Toast
- Boussole
- Accéléromètre
- Champ caméra
- LED
- Vibrations
- Notifications
- Fonctions de dessin
- Internet
Version minimum requise
  • Version 17
Commentaires
UIViewController et non UIView
L'exemple LireVideo passe un handle: c'est une instance de UIViewController que l'on obtient (WD Mobile 18 version 06F180036F).
Donc
id something = (id) currentView;
UIView *myView;
if ([something isKindOfClass:[UIViewController class]]) {
myView= ((UIViewController *) something).view;
} else { // A priori on devrait être dans ce cas d'après la doc
myView= (UIView*)currentView;
}
LaZi
28 fév. 2013

Dernière modification : 21/03/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale