PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Lecture d'un fichier de type epub sur iOS
Lecture d'un fichier de type epub sur iOS
Débuté par Eric67, 01 fév. 2017 16:06 - 3 réponses
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 01 février 2017 - 16:06
Bonjour,

J'ai un soucis pour ouvrir un fichier de type epub sur iOS.

Je précise d'emblée que le fichier figure bien dans le bon répertoire. Sur android je n'ai aucun soucis et le fichier et bien ouvert dans le bon reader.

Certes, il faut préalablement installer un reader pour ebook, mais ça fonctionne. les fichiers avec l'extension .epub sont bien associés au reader en question.

Je lance la lecture avec un LanceAppliAssociée :

SI PAS LanceAppliAssociée(gsRepEnCours + sNomFichier) ALORS
Info(ErreurInfo())
FIN


Sous iOS, autant les fichiers pdf, video et texte sont correctement ouverts dans le reader ad hoc, autant le fichier .epub ne s'ouvre pas.
Je précise qu'il existe bien un reader de fichier epub d'installé.

J'ai donc tenté une autre solution via LancePartage.

// Partage d'un fichier epub
sChemin est une chaîne = gsRepEnCours + sNomFichier
SI LancePartage(partageDocument, sChemin) = Faux ALORS
Erreur(ErreurInfo())
FIN


Là, une fenêtre proposant normalement une liste d'applications capables de lire le fichier en question s'ouvre. Cependant, la liste est vide ! Je n'ai que le bouton OK.
(alors que sur android je retrouve bien une liste d'applications susceptibles d'ouvrir le fichier voulu).

Évidemment, j'ai installé (plusieurs) applications capables de lire les fichiers epub sur l'iPhone. Aucun ne semble vouloir être "associable" avec les fichiers portant l'extention epub.

gsRepEnCours contient bien le bon chemin (dans tous les cas ca fonctionne pour les pdf, etc... donc le soucis n'est pas là)

A toutes fins utiles, j'ai quand tenté de remplacer fRepEnCours par fRepDonnées. Même soucis.

<Compile SI TypeConfiguration=Android>
gsRepEnCours = ComplèteRep(SysRepCarteStockage()) // Nous sommes sur android
<SINON> // Nous sommes en iOS
// gsRepEnCours = ComplèteRep(fRepEnCours())
gsRepEnCours = ComplèteRep(fRepDonnées())
<FIN>


Donc ma question est, comment lire un fichier de type epub sur iOS ?

Ou encore, comment associer une application à un type de fichier sous iOS ?

Cdlt - Eric

--
Eric DELATTRE
http://www.yoosite.fr
Message modifié, 01 février 2017 - 16:09
Membre enregistré
122 messages
Popularité : +5 (5 votes)
Posté le 26 avril 2017 - 18:14
Tu as trouvé une solution à ton problème ?
J'ai fait pas mal de test avec la fonction "lancePartage" pour ouvrir des documents dans une application installé sur l'iPad (mails, notes, suite office, etc.)

L'ouverture de la popin de partage fonctionne parfaitement lorsque l'on souhaite partager une image, on peut alors l'envoyer par mail, l'ajouter à une note, etc.
Par contre, lorsque l'on tente de partager des documents .txt, .docx, pptx, xlsx, etc. cela affiche une popin avec deux boutons contenant simplement "..." (trois petits points). Il n'est donc pas possible d'ouvrir ces documents avec une applications installé sur l'iPad

Pourtant lorsque j'utilise la fonction "LanceAppliAssociée" avec ces mêmes fichiers, IOS m'ouvre une vue par défaut du fichier (souvent ne permettant pas d'avoir un aperçu correct du fichier pour les pptx, xlsx, docx), à ce moment un bouton de partage est disponible et propose d'ouvrir le fichier dans une application présente sur l'iPad (Mails, notes, excel, word, etc.)

C'est assez embêtant de ne pas pouvoir utiliser directement lancePartage sans avoir cette vue par défaut qui ne permet pas de visualiser correctement son fichier.

D'autres utilisateurs ont trouvé une solution à ce problème ?

--
Nicolas Gonot - 2exVia
Agence de communication multimédia depuis 1996
http://www.2exvia.com
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 26 avril 2017 - 19:41
Bonjour Nicolas,

Non. J'ai testé plusieurs applications capables d'ouvrir l'epub. LanceAppliAssociée lance correctement l'application mais l'affichage reste aléatoire...
J'avais le même phénomène avec les 3 petits points.
Mon client ayant décidé d'abandonner ce format je n'ai finalement pas investigué plus loin.

Cdlt - Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Membre enregistré
122 messages
Popularité : +5 (5 votes)
Posté le 27 avril 2017 - 10:47
Merci pour ton retour Eric,

J'ai finalement trouvé une solution en utilisant une procédure objectif C (lancePartage ne fonctionnant pas)

// Appel de la procédure
ouvrirDocument(Handle(fenetre, HandleUIViewController), cheminCompletOuRelatifVersLeFichier)

// Code de la procédure
#import<UIKit/UIKit.h>
void ouvrirDocument(void*currentView,NSString*path)
{
UIViewController*tmpView= (UIViewController*)currentView;
UIDocumentInteractionController*documentController= [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:path]];
[documentController retain];
documentController.UTI= @"";
[documentController presentOptionsMenuFromRect:CGRectMake(725, 60, 1, 1) inView:tmpView.view animated:True];

// presentOpenInMenuFromRect n'affiche que les applications pouvant "ouvrir" le fichier
// presentOptionsMenuFromRect affiche également les applications pouvant "inclure/partager" le fichier (mails, notes, etc.)
}


--
Nicolas Gonot - 2exVia
Agence de communication multimédia depuis 1996
http://www.2exvia.com