有没有人知道在WebView中是否有办法拦截"找不到页面"或"页面未加载错误"?
根据android文档,onReceivedError()应该可以拦截.但我在一个应用程序测试它,我删除了错误的URL,它没有做任何事情.
我希望我的应用程序能够提供我自己的自定义错误消息,如果URL由于任何原因不可用.
这是没有做任何事情的代码:
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// custom error handling ... show and alert or toast or something
}
Run Code Online (Sandbox Code Playgroud) 最近我开始用WebView创建一个Android应用程序.应用程序已经增长,我使用片段和ViewPager将WebView的活动更改为选项卡式活动.我的问题开始了.经过一番头痛之后,我终于设法了如何为每个标签显示正确的片段.然后我只是将WebView的代码复制到其中一个片段,但片段没有显示我想要的网页.任何帮助将不胜感激!
这是代码:
用webView片段
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewFragment extends Fragment {
public WebView mWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mWebView = (WebView) mWebView.findViewById(R.id.webview);
mWebView.loadUrl("google.com");
// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
// Force links and redirects to open in the WebView instead of in a browser
mWebView.setWebViewClient(new WebViewClient());
return inflater.inflate(R.layout.fragment_bugtracker, container, false);
}
}
Run Code Online (Sandbox Code Playgroud)
和xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 首次加载WebView的页面时,有时图像丢失或显示不正确.如果我重新加载页面,WebView始终显示完美.我知道每个人都会首先想到我在loadUrl之后设置了javascript,但事实并非如此.
在onCreate我有:
learnWebView = (WebView)findViewById(R.id.learnWebView);
learnWebView.setWebViewClient(new WebViewClient());
learnWebView.getSettings().setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)
然后在onCreate之后调用的函数中我有:
learnWebView.loadUrl("myurl");
Run Code Online (Sandbox Code Playgroud)
是的,我知道每次在onCreate之后调用loadUrl的函数.