Android 如何验证在webview中输入的url是否有效,如果无效,如何重定向到其他url?

Android 如何验证在webview中输入的url是否有效,如果无效,如何重定向到其他url?,android,android-webview,Android,Android Webview,我正在我的应用程序中使用经过身份验证的webview。当前,当我们在搜索框中输入搜索词时,它会被添加到url(例如http.cookies.com/something/SEARCHTERM/something),并在webview中调用该url,加载url如下: if(!StringUtils.isEmpty(URL)){ if(URLUtil.isValidUrl(URL)){ mWebview.loadUrl(U

我正在我的应用程序中使用经过身份验证的webview。当前,当我们在搜索框中输入搜索词时,它会被添加到url(例如http.cookies.com/something/SEARCHTERM/something),并在webview中调用该url,加载url如下:

 if(!StringUtils.isEmpty(URL)){


                if(URLUtil.isValidUrl(URL)){
                     mWebview.loadUrl(URL);
                }else{
                    mWebview.loadUrl("http://www.google.com");

                }
然而,即使url无效,它仍会加载无效的url,显示为“412-前提条件设置,因此无法显示页面”。是否有方法可以检测此搜索词或url是否有效,并将其显示在webview中(如果有效)作为请求的url,如果无效,我会显示其他webview,如google.com? 谢谢 justin

您可以使用Webview捕捉错误,并执行任何您认为方便的操作。以下是一个示例:

yourWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        // TODO Auto-generated method stub
        super.onReceivedError(view, errorCode, description, failingUrl);
    }
});

请检查所附的图像,我已经拥有您在我的代码中提到的功能。但是,它不会将错误显示为身份验证错误,并将无效url显示为在my webview
onReceivedError
中设置的先决条件,是否未调用?尝试使用@Override public void on receivederror(WebView视图,int errorCode,String description,String failingUrl){toast.makeText(view.getContext(),“身份验证错误”,toast.LENGTH_LONG).show();super.onReceivedError(view,errorCode,description,failingUrl);}正如我提到的,这不是一个身份验证问题,页面按预期加载,但页面内的搜索词无效,因此整个url加载前提条件,这意味着搜索词无效,因此我想知道如果搜索词也无效,是否有方法重定向到其他url,我不知道如何检查搜索词的有效性,如果需要,我可以发布更多的代码。我可以用正确的代码重新回答我的问题:可能重复的