#android #xamarin.android
#Android #xamarin.android
Вопрос:
Я пытаюсь открыть PDF по URL-адресу в Webview. Это работает отлично. Но иногда, когда мы открываем WebviewActivity, он отображает белый пустой экран, а pdf не отображается. Это происходит в каждом 1 случае из 5 попыток. Ниже приведен мой код для клиента Webview. Приветствуется любая помощь.
class MonkeyWebViewClient2 : WebViewClient {
ImageView _imgViewBack,_imgViewForward, _imgRefresh;
public MonkeyWebViewClient2(ImageView imgViewBack,ImageView imgViewForward,ImageView imgRefresh){
_imgViewBack = imgViewBack;
_imgViewForward = imgViewForward;
_imgRefresh = imgRefresh;
}
public override void OnPageStarted (WebView view, string url, Bitmap favicon)
{
base.OnPageStarted (view, url, favicon);
_imgRefresh.SetImageResource (Resource.Drawable.close);
if(view.CanGoBack()){
_imgViewBack.SetImageResource(Resource.Drawable.back_black_arrow);
}else {
_imgViewBack.SetImageResource(Resource.Drawable.NavArrowLeft);
}
if (view.CanGoForward()) {
_imgViewForward.SetImageResource (Resource.Drawable.ArrowRight2);
} else {
_imgViewForward.SetImageResource (Resource.Drawable.NavArrowRight);
}
_imgRefresh.Click = (sender, e) => view.StopLoading ();
//Console.WriteLine ("OnPageStarted");
}
public override void OnPageFinished (WebView view, string url)
{
base.OnPageFinished (view, url);
_imgRefresh.SetImageResource (Resource.Drawable.refresh_icon);
if (view.CanGoBack ()) {
_imgViewBack.SetImageResource (Resource.Drawable.back_black_arrow);
} else {
_imgViewBack.SetImageResource (Resource.Drawable.NavArrowLeft);
}
if (view.CanGoForward ()) {
_imgViewForward.SetImageResource (Resource.Drawable.ArrowRight2);
} else {
_imgViewForward.SetImageResource (Resource.Drawable.NavArrowRight);
}
_imgRefresh.Click = (sender, e) => view.Reload ();
AndHUD.Shared.Dismiss();
}
}
protected override void OnPause()
{
base.OnPause();
if (InformationWebView != null)
{
InformationWebView.OnPause();
}
}
protected override void OnResume()
{
base.OnResume();
if (InformationWebView != null)
{
InformationWebView.OnResume();
}
}
public override void OnBackPressed (){
Finish();
}
}
Комментарии:
1. Это происходит, когда вы возвращаетесь на эту страницу с другой или просто когда вы непосредственно открываете ее?
2. Это происходит, когда я возвращаюсь на эту страницу от другого @G.hakim
3. Я так и думал, что вы, возможно, захотите перезагрузить страницу, когда вернетесь к ней, иногда она теряет свое старое состояние
4. Нет, я каждый раз создаю для него новый экземпляр Activity. таким образом, сохранение старого состояния здесь отсутствует. @G.hakim
5. Код события выполняется до webview.loadUrl (url). Но управление не поступает внутрь onPageStarted () клиента WebView. @G.hakim