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 :

Utilisation d'applications dans une autre application


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut Utilisation d'applications dans une autre application
    Bonjour,

    J'ai un petit ( gros ) soucis avec l'application que j'ai créé actuellement.

    En fait, c'est une simple application qui utilise internet et redirige vers une page web que j'ai au préalable adaptée pour mobiles. Sur cette page, pour chaque fiche client, il y a une icone avec un lien "google maps", ou une autre avec un "mailto:". Lorsque je consulte cette page via mon navigateur internet ( du téléphone ou non ), aucun soucis tous les liens sont fonctionnels et utilisent bien les applications "gmail" ou "maps" sans poser de soucis. Par contre, quand j'utilise via l'application ( qui marche en dehors de ce problème ), le lien google maps ouvre dans l'application la page internet ( ce qui est plus long que l'appli ), avec impossibilité de retourner vers l'application, le retour ferme complètement tout. Ensuite, le lien mailto: envoie vers une page d'erreur, de la même manière, à la place de l'application.

    J'ai codé ça avec Eclipse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package com.latribunebulletin_annuairemobile;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Window;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
     
    public class MainActivity extends Activity
    {
        final Activity activity = this;
     
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
            setContentView(R.layout.activity_main);
            WebView webView = (WebView) findViewById(R.id.webview);
            webView.getSettings().setJavaScriptEnabled(true);
     
            webView.setWebChromeClient(new WebChromeClient() {
                public void onProgressChanged(WebView view, int progress)
                {
                    activity.setTitle("Loading...");
                    activity.setProgress(progress * 100);
     
                    if(progress == 100)
                        activity.setTitle(R.string.app_name);
                }
            });
     
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
                {
                    // Handle the error
                }
     
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url)
                {
                    view.loadUrl(url);
                    return true;
                }
            });
     
            webView.loadUrl("http://www.tribuca.fr/annuaire-alpes-maritimes2.php");
        }
    }
    Des idées pour régler ce problème ?

    Merci d'avance,
    Cordialement.

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Effectivement, d'après ton code, l'application va tout démarrer sur internet.

    Pour démarrer la map de Google ou le service email, il vaut mieux manipuler les Intent:

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
    Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
    startActivity(intent);

  3. #3
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Essayes un truc du genre :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url)
                {
                    if (url_commence_par_http) { //je te laisse écrire ce test
                       view.loadUrl(url);
                    } else {
                       Intent i = new Intent();
                       i.setAction(android.content.Intent.ACTION_VIEW);
                       i.setDate(Uri.parse(url));
                       ctx.startActivity(i);
                    }
                   return true;
                }
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  4. #4
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut
    Merci pour vos réponses,

    En modifiant le code de la sorte, cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package com.latribunebulletin_annuairemobile;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Window;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
     
    public class MainActivity extends Activity
    {
        final Activity activity = this;
     
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
            setContentView(R.layout.activity_main);
            WebView webView = (WebView) findViewById(R.id.webview);
            webView.getSettings().setJavaScriptEnabled(true);
     
            webView.setWebChromeClient(new WebChromeClient() {
                public void onProgressChanged(WebView view, int progress)
                {
                    activity.setTitle("Loading...");
                    activity.setProgress(progress * 100);
     
                    if(progress == 100)
                        activity.setTitle(R.string.app_name);
                }
            });
     
     
            webView.loadUrl("http://www.tribuca.fr/annuaire-alpes-maritimes2.php");
        }
    }
    Je me suis renseigné sur des gens qui avaient le problème inverse, et voulaient bloquer toute activité dans la WebView. Maintenant, je suis bien redirigé vers les applications maps / mail du téléphone, si installées !

    EDIT : Hephaistos007, ta solution serait parfaite, si ma redirection vers maps n'étaient pas en "http://maps.google.fr/maps?f=q&hl=fr&q=$maps" =( Mais je prend note de cette solution pour mes prochaines fois.

  5. #5
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Citation Envoyé par Slight Voir le message
    EDIT : Hephaistos007, ta solution serait parfaite, si ma redirection vers maps n'étaient pas en "http://maps.google.fr/maps?f=q&hl=fr&q=$maps" =( Mais je prend note de cette solution pour mes prochaines fois.
    Une URI commençant par http est logiquement ouverte par une application Browser (chrome, dolphin, firefox, ...). C'est normal. Pour ouvrir l'application de cartographie Maps c'est l'URI geo:37.786971,-122.399677
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

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

Discussions similaires

  1. Exécuter une application dans une autre application
    Par ziedzied dans le forum Général Java
    Réponses: 1
    Dernier message: 18/01/2013, 14h27
  2. Réponses: 0
    Dernier message: 22/12/2011, 17h30
  3. Réponses: 3
    Dernier message: 08/10/2006, 11h05
  4. Coller dans une autre application
    Par johweb dans le forum Delphi
    Réponses: 4
    Dernier message: 21/06/2006, 14h47
  5. Envoyer du texte dans une autre application (ou send key)
    Par Coussati dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 10/02/2006, 15h26

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