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ésolu le problème, merci. Je m'attendais à quelque chose de plus complexe. –
np, heureux de l'aide. –