2010-05-28 11 views
1

Je suis nouveau dans le développement android et j'essaye l'exemple WebView dans le site Android officiel.Exemple "Bonjour, WebView"

http://developer.android.com/guide/tutorials/views/hello-webview.html

Mais je fais tout ce qu'ils disent ... ce qui est assez simple: je crée le projet, modifier le fichier de mise en page, puis ajouter le code, etc. Aucun bâtiment de problèmes ... mais quand je lancer l'application dans le simulateur je viens d'avoir un écran noir. C'est comme si la mise en page était vide ... comme si le WebView n'était pas créé.

Qu'est-ce que je fais mal?

Répondre

8

Désolé pour ce – ce lien est un peu désuet. La version fixe de ce tutoriel est disponible ici:

http://developer.android.com/guide/webapps/webview.html

Nous devrions supprimer l'ancien lien; Je vais déposer un bug.

Et notez, l'erreur est que setContentView n'est pas appelée.

+1

Salut Roman, Merci pour votre réponse. J'ai essayé le nouveau tutoriel et je l'ai fait fonctionner, même s'il a aussi un bug. Dans la mise en page, lors de l'ouverture de la balise WebView ... est d'être comme ceci: arakn0

+0

Pouvez-vous me dire exactement ce qui s'est passé avec l'ancien exemple? Vous avez mentionné que l'erreur est que setContentView n'était pas appelé, mais j'appelais. Ma méthode onCreate ressemblait à ceci: public void onCreate (groupe savedInstanceState) { \t super.onCreate (savedInstanceState); \t setContentView (R.layout.main); \t webview = (WebView) findViewById (R.id.webview); \t webview.getSettings(). SetJavaScriptEnabled (true); \t webview.loadUrl ("http://www.google.com"); ) J'ai le même code dans un autre projet et cela fonctionne, mais le fichier de disposition est différent. merci d'avance! – arakn0

+0

Vous avez raison sur le nouveau tutoriel - il manque 'xmlns: android'. L'ancien tutoriel manquait 'setContentView' mais je ne suis pas sûr de savoir quelle autre erreur vous aviez à part ça. Si vous publiez tout votre code précédent, quelqu'un peut être en mesure de repérer l'erreur. –

2

dans la méthode oncreate ajouter WebView.enablePlatformNotifications();

dans le fichier manifeste ajouter

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 

maintenant il fonctionne très bien ...

0
webview_id = (WebView)findViewById(R.id.webview_id); 
    webview_id.getSettings().setJavaScriptEnabled(true); // enable javascript 
    WebSettings webSettings = webview_id.getSettings(); 
    webSettings.setBuiltInZoomControls(true); 
    webSettings.setDisplayZoomControls(true); 
    webSettings.setPluginState(WebSettings.PluginState.ON); 
    webSettings.setJavaScriptEnabled(true); 
    webview_id.setInitialScale(90); 
    webSettings.setLoadWithOverviewMode(true); 
    webview_id.requestFocusFromTouch(); 
    webview_id.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      Snackbar.with(getApplicationContext()).dismiss(); 
      Snackbar.with(getApplicationContext()) // context 
        .text(description) // text to display 
        .show(MainActivity.this); 
     } 
     public void onPageFinished(WebView view, String url) { 
      progressBar.setVisibility(View.GONE); 
     } 
    }); 


    if(isNetworkAvailable()){ 

     webview_id .loadUrl("http://helloworld.org/"); 
    }else{ 
     Snackbar.with(getApplicationContext()).dismiss(); 
     Snackbar.with(getApplicationContext()) // context 
       .text("Please Check your Internet Connection") // text to display 
       .show(MainActivity.this); 
     progressBar.setVisibility(View.VISIBLE); 
    } 
} 
+0

vous devriez également écrire du texte pour expliquer ce que vous avez fait. Les réponses au code source ne sont pas bonnes. – JuHwon