I was going through android tutorials and tried out the WebView
example. This is what I ended up with:
WebAppActivity
public class WebAppActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView wv = (WebView) findViewById(R.id.webView1);
wv.loadUrl("http://www.google.com");
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</WebView>
</LinearLayout>
But instead of loading the page in the application itself, as soon as the application starts the default android browser opens and the page loads in the browser instead of the application. When I press back I return to the application activity which displays a blank screen.
Does anyone know why this is happening?
Edit:
manifest
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".WebAppActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
This was just to show that I have added the INTERNET permission
Edit :
As soon as I add a WebViewClient
,
wv.setWebViewClient(new WebViewClient() {});
the page loads in the application. Is this expected behaviour? Does an Android WebView require a WebViewClient? (couldn't find any documentation on it)
Edit :
I noticed that this problem occurs when I install the apk in an emulator which has the Google APIs. On a normal emulator (without the Google APIs) it behaves as expected.