我正在浏览android教程,并尝试了WebView
示例。这就是我最终得到的结果:
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>
但是,而不是在应用程序本身中加载页面,而是在应用程序启动后立即打开默认的android浏览器,并将页面加载到浏览器中而不是应用程序中。当我按返回时,我将返回显示空白屏幕的应用程序 Activity 。
有人知道为什么会这样吗?
编辑:
list
<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>
这只是为了表明我已经添加了INTERNET权限
编辑 :
一旦添加
WebViewClient
,wv.setWebViewClient(new WebViewClient() {});
该页面将加载到应用程序中。这是预期的行为吗? Android WebView 是否需要一个WebViewClient?
(找不到任何文档)
编辑 :
我注意到在具有Google API的模拟器中安装apk时会发生此问题。在普通的模拟器(没有Google API)上,它的行为符合预期。
最佳答案
是的,您必须设置一个WebViewClient,该方法在被覆盖的方法“shouldOverrideUrlLoading”上返回true,以便您的Webview将URL加载到您的应用中。
让我知道您是否想举个例子。
编辑
@Aki WebViewClient.shouldOverrideUrlLoading Documentation
关于android - WebView是否需要WebViewClient才能工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8740307/