Страница не загружается полностью при вызове onPageFinished () - PullRequest
2 голосов
/ 02 апреля 2019

Я хочу сделать скриншот веб-просмотра после завершения загрузки страницы. Поэтому я пытаюсь добавить getSnapShot() в onPageFinished(), но при вызове getSnapShot() страница не загружается. Таким образом, изображение снимка пустое.

И я загружаю локальный URL-адрес html-файла, поэтому я считаю, что перенаправления нет.

Я также попытался сделать MyWebView extends WebView, переопределить onDraw(), добавить прослушиватель обратного вызова для вызова getSnapShot() при onDraw() процессе. Но все еще не работает.

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        // will get a blank picture
        getSnapshot();
    }
});

1 Ответ

1 голос
/ 02 апреля 2019

Попробуйте этот код;

 webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
    Picture picture = view.capturePicture();
        Bitmap  b = Bitmap.createBitmap( picture.getWidth(),
        picture.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas( b );

         picture.draw( c );
         FileOutputStream fos = null;
         try {

       fos = new FileOutputStream( "your_directory_screenshot.jpg" );
          if ( fos != null )
         {
    b.compress(Bitmap.CompressFormat.JPEG, 100, fos);

      fos.close();
               }
         }
        catch( Exception e )
      {}
    }
});
...