IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[Cordova] Ouvrir un fichier dans une application externe


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut [Cordova] Ouvrir un fichier dans une application externe
    Bonjour,

    Je récupère un fichier de tous types que je veux ouvrir dans une application externe proposée par Android sachant que mon appli mobile est basée sur Cordova 3.1.

    Par exemple, j'ai une URL vers un fichier PDF, je veux qu'il me l'ouvre de façon système (soit avec l'appli que l'utilisateur a sélectionné par défaut, soit avec une appli au choix, soit en téléchargeant). Idem avec les types XLS, ZIP, etc.

    De la même façon, je veux pouvoir ouvrir une URL (classique), dans un Browser externe !! Est-ce possible ?

    Note : Je débute en dev mobile.

    Merci !

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    En théorie oui : tu décris le fonctionnement normal d'Android, plus spécifiquement la notion d'Intent.

    Par contre, ne connaissant absolument pas Cordova et ne comprenant pas des masses ce que je trouve dessus... je ne peux t'aiguiller plus.

    EDIT : à priori, ta première requête se ferait via le plugin FileOpener.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Ah yes merci.

    En fait, Cordova est une surcouche avec laquelle tu buildes ton application pour qu'elle soit compatible multi-OS. En l'occurence, l'appli doit être compatible Android et iOS. J'avais d'abord trouvé ça cordova-startapp https://github.com/dmedvinsky/cordova-startapp.

    Mais celui que tu m'as proposé m'a l'air plus sérieux (rien que parce qu'il y a un plugin.xml pour faciliter l'installation ).

    Peut être que d'autres personnes ont déjà essayé ces plugins.

    En tout cas merci, je vais tester de ce pas !!

    Note : En fait non, il est marqué compatible iOS et Android mais en vrai, il n'est compatible que Android...

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Ca fait des plombes que je n'ai pas fait d'iOS... mais en recherchant un peu sur le net, je n'ai pas l'impression que ce soit possible autrement que pour certains protocoles, ou de manière custom : https://developer.apple.com/library/...07072-CH7-SW18

    Paragraphe "Communicating with other apps".
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    En fait, maintenant j'arrive à peu près à quelque chose mais l'application ne s'ouvre pas. Alors je me demandais s'il fallait déclarer des choses spécifiques dans le AndroidManifest. Par exemple, j'ai rajouté un intent-filter dans ma balise activity (pour l'action VIEW) :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:name="MonAppli" android:theme="@android:style/Theme.Black.NoTitleBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>

    ... Mais je ne sais pas si c'est comme ça qu'on s'en sert.
    Je me demande également s'il ne manquerait pas une permission.

  6. #6
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Je dis des bêtises, ce que je viens de citer au dessus, c'est pour accéder à l'application depuis l'extérieur (je viens seulement de le comprendre, faut me pardonner ).

    Ceci étant, voilà ce que j'essaye de faire :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    MimeTypeMap mime = MimeTypeMap.getSingleton();
    Uri uri = "http://mon.serveur.com/monfichier.pdf";
    String ext = "";
    int x = uri.toString().lastIndexOf('.');
    if (x > 0) {
        ext = uri.toString().substring(x+1);
    }
    String type = mime.getMimeTypeFromExtension(ext);
    Intent i = new Intent("android.intent.action.ACTION_VIEW", uri);
    i.setType(type);
    ((CordovaActivity)this.cordova.getActivity()).startActivityForResult(i, 1);

    Et j'ai cette exception :
    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.ACTION_VIEW dat=http://mon.serveur.com/monfichier.pdf typ=application/pdf }
    Est-ce que cela peut venir du fait que je n'ai pas d'application pour ouvrir ce type de fichier ? (Bien qu'il puisse peut être me proposer de le télécharger tout simplement)
    Ou bien une permission manquante ?
    Ou bien parce que c'est une URL en http:// alors qu'il faudrait content:// ou file:// ou autre ? Dans ce cas, comment j'appelle un fichier distant avec une URI correcte ? Faut-il le charger en local avant ? Si oui, comment ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Ouvrir un fichier dans une application déjà ouverte
    Par FranckM57 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/10/2014, 11h14
  2. [WD14] Ouvrir un fichier avec une application externe via LanceAppli()
    Par Fastolph dans le forum WinDev
    Réponses: 13
    Dernier message: 28/09/2011, 09h26
  3. Ouvrir et écrire dans une application externe
    Par Rey_del_Pok dans le forum C#
    Réponses: 5
    Dernier message: 01/02/2011, 09h13
  4. drag & drop de fichiers dans une application java
    Par devmat dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 13/12/2007, 00h41
  5. Comment décompresser un fichier dans une application ?
    Par f6dqm1 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 14/01/2005, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo