WebView webView = findViewById(R.id.webView); webView.setWebViewClient(new MyWebViewClient()); webView.loadUrl("https://example.com"); // 加载完毕后获取 MyWebViewClient 对象并调用 getSniffedUrls 方法获取链接列表 MyWebViewClient myWebViewClient = (MyWebViewClient) webView.getWebViewClient(); List<String> sniffedUrls = myWebViewClient.getSniffedUrls(); 改成输出嗅探到的链接
时间: 2024-01-08 08:37:09 浏览: 117
您可以将最后三行代码改为以下代码,以输出嗅探到的链接列表:
```
MyWebViewClient myWebViewClient = new MyWebViewClient();
webView.setWebViewClient(myWebViewClient);
webView.loadUrl("https://example.com");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
List<String> sniffedUrls = myWebViewClient.getSniffedUrls();
Log.d("SniffedUrls", sniffedUrls.toString());
}
});
```
这样,当页面加载完成时,会调用 onPageFinished 方法,其中可以获取到嗅探到的链接列表,并使用 Log 输出至 Android Studio 的 Logcat 中。
相关问题
在这个Android项目中package com.example.ch03; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button mBtnOpenBrowser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mBtnOpenBrowser = findViewById(R.id.btn_open_browser); mBtnOpenBrowser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String url = "https://finance.sina.com.cn/stock/usstock/hkstock/2021-10-15/doc-iktzscyy0351779.shtml"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); startActivity(intent); } }); } }添加webview
要在这个Android项目中添加WebView,可以按照以下步骤进行操作:
1. 在布局文件中添加WebView组件,例如:
```xml
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 在Java代码中获取WebView对象,并进行一些基本设置,例如:
```java
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
```
3. 修改按钮的点击事件,使其加载WebView而不是打开浏览器,例如:
```java
mBtnOpenBrowser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "https://finance.sina.com.cn/stock/usstock/hkstock/2021-10-15/doc-iktzscyy0351779.shtml";
webView.loadUrl(url);
}
});
```
4. 可以根据需要添加一些其他的设置,例如:
```java
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
```
以上是添加WebView的基本步骤,具体可以根据项目需要进行调整。
android webview 重定向 多次load问题,解决webview 第二次调用loadUrl页面不刷新的问题...
当WebView第二次调用loadUrl时,页面不会刷新的原因可能是由于缓存导致的。因为WebView默认启用了缓存机制,当再次加载同一个URL时,会直接从缓存中读取,而不会重新请求服务器。
要解决这个问题,可以通过以下两种方式:
1.禁用WebView缓存
在调用loadUrl之前,可以通过设置WebSettings对象禁用缓存:
```java
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
```
这样每次加载URL时,都会强制从服务器重新获取数据,并禁用缓存。
2.强制刷新WebView
在WebView中添加一个刷新按钮,每次点击刷新按钮时,强制刷新WebView。具体实现如下:
```java
// 添加一个刷新按钮
Button refreshBtn = findViewById(R.id.refresh_btn);
refreshBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.reload();
}
});
// 在WebViewClient中监听页面加载完成事件,并隐藏刷新按钮
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
refreshBtn.setVisibility(View.GONE);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
refreshBtn.setVisibility(View.VISIBLE);
}
});
```
当页面加载完成时,隐藏刷新按钮;当页面加载失败时,显示刷新按钮。这样就可以通过点击刷新按钮来强制刷新WebView了。
阅读全文