如何在Webview上生成错误?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Webview上生成错误?相关的知识,希望对你有一定的参考价值。
我为我的企业开发了一个网站,我几乎完全使用php
所以Java语言(和android studio)对我来说真的很新
尽管如此我必须创建一个APK来使用该网站(为了阻止这个网站上的Android主页)
我想知道如何生成错误以测试此功能
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
main activity.Java
public class MainActivity extends AppCompatActivity {
WebView webView;
SwipeRefreshLayout swipe;
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = (ProgressBar) findViewById(R.id.awv_progressBar);
swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
LoadWeb();
progressBar.setMax(100);
progressBar.setProgress(1);
swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
webView.reload();
}
});
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
progressBar.setProgress(progress);
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
webView.loadUrl("file:///android_asset/error.html");
}
public void onPageFinished(WebView view, String url) {
//Don't show ProgressBar
progressBar.setVisibility(View.INVISIBLE);
//Hide the SwipeRefreshLayout
swipe.setRefreshing(false);
}
});
}
public void LoadWeb() {
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setjavascriptEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.loadUrl("mysite.com");
swipe.setRefreshing(true);
}
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
finish();
}
}
}
答案
一种方法是通过添加代理(使用类似fiddler的应用程序),根据您对设备的所有请求的意愿返回自定义错误代码。如果您不需要特定的错误代码,只需使用实际上不存在的随机系统范围的WiFi代理。在这种情况下,设备将尝试向此代理发送数据,但无法找到它,您将在onReceivedError中获得回调。
以上是关于如何在Webview上生成错误?的主要内容,如果未能解决你的问题,请参考以下文章
在 ListView 上生成 OnClickEvent 而不实际单击项目
如何使用 SWIG 在 C++ API 上生成 C 包装器? [复制]