-1

Следующий код - MainActivity приложения. Я пытался добавить страницу ошибки с помощью:Как добавить страницу пользовательской ошибки в приложение Android WebView без каких-либо ошибок?

mywebView.setWebViewClient (новый WebViewClient() { @Override общественности недействительным onReceivedError (вид WebView, внутр ERRORCODE, описание String, String failingUrl) { mywebView.loadUrl (» файл: ///android_asset/error.html "); }});

Когда я использую приведенный выше код в основном действии, одновременно отображается страница ошибки или значок загрузки. (переопределяя друг друга).

Я не понимаю, где я ошибаюсь. Может кто-нибудь помочь мне решить эту проблему? Заранее спасибо.

public class MainActivity extends AppCompatActivity { 

public WebView mywebView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mywebView = (WebView)findViewById(R.id.webView); 
    WebSettings webSettings = mywebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mywebView.loadUrl("http://google.com/"); 
    mywebView.setWebViewClient(new WebViewClient()); 
    mywebView.setDownloadListener(new DownloadListener() { 
     public void onDownloadStart(String url, String userAgent, 
            String contentDisposition, String mimetype, 
            long contentLength) { 
      Intent i = new Intent(Intent.ACTION_VIEW); 
      i.setData(Uri.parse(url)); 
      startActivity(i); 
     } 
    }); 
    mywebView.setWebViewClient(new WebViewClient() { 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 

      super.onPageStarted(view, url, favicon); 
      findViewById(R.id.progress).setVisibility(View.VISIBLE); 
     } 

     public void onPageFinished(WebView view, String url) { 
      findViewById(R.id.progress).setVisibility(View.GONE); 
     } 
    }); 
} 
public void onBackPressed() { 
    if(mywebView.canGoBack()){ 
     mywebView.goBack(); 
    } else { 
     super.onBackPressed(); 
    } 
}} 
+0

Кажется, что ваш * синтаксис * смысл отличается от [что это значит] (https://en.wikipedia.org/wiki/Syntax) – Selvin

+0

Я правильно не получил u –

+0

Неправильно используется синтаксис слов, поэтому ваш вопрос не вызывает чувства (или, по крайней мере, трудно получить то, что вы имели в виду) – Selvin

ответ

0
mywebView.setWebViewClient(new WebViewClient() { 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 

      super.onPageStarted(view, url, favicon); 
      findViewById(R.id.progress).setVisibility(View.VISIBLE); 
     } 

     public void onPageFinished(WebView view, String url) { 
      findViewById(R.id.progress).setVisibility(View.GONE); 
     } 

     public void onReceivedError(WebView webview, int i, String s, String s1) 
     { 
      webview.loadUrl("file:///android_asset/error.html"); 
     } 
    }); 

Наконец я нашел решение.

+0

Как я писал ... Все 3 метода в одном классе ... Браво. – Selvin

+0

s мой frnd. thnx fr th идея. :) –

+0

Я переформатировал свой вопрос. Но ты еще не об этом догадался. –