我正在浏览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/

10-11 14:45