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

Composants graphiques Android Discussion :

Création de webview


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 20
    Par défaut Création de webview
    Bonjour,

    Alors dans mon projet j'ai besoin d'aller sur une page internet afin de consulter des information, je voulais que cela soit fait au sein de mon application afin que le client n'ai pas a devoir renseigner l'adresse lui même a la main dans son navigateur.

    J'ai donc utilisé les webview:

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
     
    package com.example.dylan.myapplication;
     
    import android.app.ProgressDialog;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.view.View;
    import android.view.Window;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.Button;
    import android.widget.Toast;
    import android.app.Activity;
     
    /**
     * Created by dylan on 04/06/2015.
     */
    public class videoview extends MainActivity {
     
        //Fenetre d'attente
        private ProgressDialog progressDialog;
        //Controle d'affichage HTML
        private WebView webview;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.video_view);
     
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.video_view);
     
            webview = (WebView) findViewById(R.id.webview);
            WebSettings settings = webview.getSettings();
            settings.setJavaScriptEnabled(true);
            webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
     
            //Afficher une fenetre d'attente
            progressDialog = ProgressDialog.show(videoview.this, "Exemple de Webview", "Chargement...");
     
            //Creer le browser et charger l'url
            webview.setWebViewClient(new MyWebClient());
            webview.loadUrl("http://www.jeuxvideo.com");
     
     
     
        }
     
        /**
         * Surcharger l'evenement retour
         * @param keyCode
         * @param event
         * @return
         */
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
                webview.goBack();
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
     
        /**
         * Configurer les evenements du Webview
         */
        public class MyWebClient extends WebViewClient {
     
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
     
            @Override
            public void onPageFinished(WebView view, String url) {
                //  Log.i(TAG, "Finished loading URL: " +url);
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }
            }
     
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Log.e("Myapp", "Error: " + description);
                Toast.makeText(getApplicationContext(), "Erreur: "+description, Toast.LENGTH_LONG).show();
            }
        }
     
    }
    voici le code que j'utilise

    Seulement lorsque je lance l'application et que je clique sur mon bouton ouvrant le webview j'ai la reponse suivante dans les logs:

    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
    06-08 12:32:16.011  14190-14190/com.example.dylan.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main
        Process: com.example.dylan.myapplication, PID: 14190
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dylan.myapplication/com.example.dylan.myapplication.videoview}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2694)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
                at android.app.ActivityThread.access$900(ActivityThread.java:178)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:145)
                at android.app.ActivityThread.main(ActivityThread.java:5944)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
         Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
                at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:359)
                at android.app.Activity.requestWindowFeature(Activity.java:3785)
                at com.example.dylan.myapplication.videoview.onCreate(videoview.java:33)
                at android.app.Activity.performCreate(Activity.java:6289)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2647)
    ************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
    ************at android.app.ActivityThread.access$900(ActivityThread.java:178)
    ************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
    ************at android.os.Handler.dispatchMessage(Handler.java:102)
    ************at android.os.Looper.loop(Looper.java:145)
    ************at android.app.ActivityThread.main(ActivityThread.java:5944)
    ************at java.lang.reflect.Method.invoke(Native Method)
    ************at java.lang.reflect.Method.invoke(Method.java:372)
    ************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
    ************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
    avez vous une idée d’où cela pourrait venir ?

    cordialement

  2. #2
    Membre confirmé Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Par défaut
    As-tu bien ajouté la permission Internet dans le manifest ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.INTERNET" />

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    C'est quoi MainActivity ?

    Le onCreate de MainActivity ne ferait pas un setContentView dans le onCreate ? (qui du coup arriverait avant le requestWindowFeature).

    NB: les noms de classes doivent être explicites et utiliser le format "CamelCase" (avec majuscule au début). Pour moi: "videoview" est une variable, qui référence une "view". En aucun cas une activité. Elle devrait être nommée "VideoViewActivity" par exemple.
    Du coup "MainActivity" n'est pas non plus un bon nom de classe... "MainActivity" est en général l'activité principale d'une application, et ne saurait donc être héritée... tout dépend donc de ce que fait "MainActivity" comme opération générique.

Discussions similaires

  1. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 17h20
  2. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 12h36
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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