我有一个webview,它加载了一个本地的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
任何人遇到相同的问题或任何建议?
谢谢,如果有人可以提供帮助。
答案 0 :(得分:0)
尝试使用已弃用的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++;
}
});