2011-11-09 2 views
3

Je crée une application Android (Android 2.3.3) qui a un en-tête, un pied de page et un WebView entre les deux. Le problème est que WebView n'ouvre aucune page Web. (NOTE: je cours l'application sur un émulateur).WebView n'ouvre pas les pages Web mais le navigateur est (ERREUR: page Web non disponible)

J'ai essayé d'ouvrir des pages Web en utilisant le navigateur Android et les pages Web sont ouvertes correctement. J'ai également essayé:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
startActivity(intent); 

Et le code fonctionne correctement (ouvre la page dans le navigateur).

J'ai travaillé avec www.google.com et avec un domaine personnel, j'ai également travaillé avec l'adresse IP des deux pages Web (pour google 72.14.204.147 et pour mon propre, l'ip de mon propre serveur de développement).

En outre, avant que la réponse la plus populaire soit écrite, j'ai déjà <uses-permission android:name="android.permission.INTERNET" /> avant la balise d'application.

J'ajoute le code avant que quiconque ne le demande:

Le fichier java activité:

public class MyActivity extends Activity { 

//Global Variables 
WebView mainWebView; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    loadActivityViews(); 

    mainWebView.getSettings().setJavaScriptEnabled(true); 
    mainWebView.loadUrl("www.google.com"); 
    mainWebView.setWebViewClient(new MyWebViewClient()); 
} 

/** Loads all global views of the Activity */ 
private void loadActivityViews(){ 
    mainWebView = (WebView) findViewById(R.id.index_main_web_view); 
} 

//Internal Classes 

/* 
* MyWebView Class 
* 
* Forces links to open in the same webView 
* Handles the back button. 
* */ 

public class MyWebViewClient extends WebViewClient { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

    @Override 
    public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { 
     if ((event.getKeyCode() == KeyEvent.KEYCODE_BACK) && view.canGoBack()) { 
      view.goBack(); 
      return true; 
     } 

     return super.shouldOverrideKeyEvent(view, event); 
    } 
} 
} 

Le Manifest android: (NOTE: il a "android.permission.INTERNET" avant l'étiquette d'application)

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="pixable.android" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-permission android:name="android.permission.INTERNET" /> 

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


    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 

     <activity 
      android:label="@string/app_name" 
      android:name=".MyActivity" 
      android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

la main.xml (je ne t pense qu'il est important, mais je suis l'ajouter au cas où)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:id="@+id/index_main_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#FFFFFF" > 

     <RelativeLayout 
      android:id="@+id/index_header" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:background="#000000" > 

      ... My header butons ... 

     </RelativeLayout> 

     <WebView 
      android:id="@+id/index_main_web_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/index_header" 
      android:layout_above="@+id/index_botom_layout" /> 

     <LinearLayout 
      android:id="@+id/index_botom_layout" 
      android:layout_width="fill_parent" 
      android:layout_height="50px" 
      android:layout_alignParentBottom="true" 
      android:background="#000000" 
      android:orientation="horizontal" > 

      ... My Footer Butons ... 

     </LinearLayout> 

    </RelativeLayout> 

</LinearLayout> 

Répondre

5

Je pense que votre problème est que vous ne préférez pas l'URL avec http://. Je vous parie http://www.google.com fonctionne.

+0

Résolu le problème, merci. Je m'attendais à quelque chose de plus complexe. –

+0

np, heureux de l'aide. –

Questions connexes