Android локальный веб-сайт OnPageFinished поздно стрельбы - PullRequest
3 голосов
/ 21 декабря 2011

У меня есть веб-просмотр, который загружает локальную HTML-страницу, и мне нужно знать, когда она закончила загрузку, поэтому я использовал функцию onPageFinished (), которая запускается сразу, но по какой-то причине она отлично работает на веб-сайтах, например, google.co.uk.

public class TestwebviewActivity extends Activity {
/** Called when the activity is first created. */
WebView webview = null;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    webview = (WebView) findViewById(R.id.webview);
    Log.d("Webview", "created");
    webview.getSettings().setJavaScriptEnabled(true);

    webview.setWebViewClient(new WebViewClient() 
    { 
        public void onPageFinished(WebView view, String url) 
        { 
            Log.d("Webview", "Finished Loading");

            Picture picture = view.capturePicture(); 
            Bitmap  b = Bitmap.createBitmap( 300, 300, Bitmap.Config.ARGB_8888); 
            Canvas c = new Canvas( b ); 
            picture.draw( c ); 
            FileOutputStream fos = null; 
            try { 
                fos = new FileOutputStream( "/sdcard/google_" + System.currentTimeMillis() + ".jpg" ); 
                if ( fos != null ) 
                { 
                    b.compress(Bitmap.CompressFormat.JPEG, 90, fos ); 
                    fos.close();
                    Log.d("Webview", "Image Created");
                } 
            } catch( Exception e ) 
            { 
            //... 
            } 
        } 
    });   
    webview.loadUrl("file:///android_asset/htmlpage.html");
}

}

Это произошло только после обновления до Android 3.2 - ранее на 2.3

Кто-нибудь сталкивался с такими же проблемами или какими-либо предложениями?

Спасибо, если кто-нибудь может помочь.

1 Ответ

0 голосов
/ 29 октября 2013

Попробуйте использовать устаревшие PictureListener:

    wv.setPictureListener(new PictureListener() {

        @Override
        public void onNewPicture(WebView view, Picture picture) {
            if (i < pageList.size()) {
                wv.loadUrl("javascript: highlightSearchTerms('" + searchKey + "');");   
            } else listener.onFinishSearch();

            i++;
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...