У меня есть веб-просмотр, который загружает локальную 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
Кто-нибудь сталкивался с такими же проблемами или какими-либо предложениями?
Спасибо, если кто-нибудь может помочь.