gpt4 book ai didi

android - WebView 是否需要 WebViewClient 才能工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:15 24 4
gpt4 key购买 nike

我正在阅读 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");

}
}

ma​​in.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

Give the host application a chance to take over the control when a new url is about to be loaded in the current WebView. If WebViewClient is not provided, by default WebView will ask Activity Manager to choose the proper handler for the url. If WebViewClient is provided, return true means the host application handles the url, while return false means the current WebView handles the url.

关于android - WebView 是否需要 WebViewClient 才能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8740307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com