Xamarin 在webview加载期间显示SplashScreen
我正在构建一个Xamarin应用程序,显示一个网络视图;当前,当应用程序开始使用MainActivity.cs上的代码时,我会显示启动屏幕:Xamarin 在webview加载期间显示SplashScreen,xamarin,xamarin.forms,xamarin.android,Xamarin,Xamarin.forms,Xamarin.android,我正在构建一个Xamarin应用程序,显示一个网络视图;当前,当应用程序开始使用MainActivity.cs上的代码时,我会显示启动屏幕: [Activity(Label = "App.Xamarin", Icon = "@mipmap/icon", Theme = "@style/Theme.Splash", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | C
[Activity(Label = "App.Xamarin",
Icon = "@mipmap/icon",
Theme = "@style/Theme.Splash",
MainLauncher = true,
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
现在,当webvieb启动/停止加载其内容时,我需要在我的webviewrenderer中显示相同的启动,因此我有了自己的WebViewClient:
internal class CusViewClient : WebViewClient
{
string _javascript;
public SistemiWebViewClient(string javascript)
{
_javascript = javascript;
}
public override void OnPageStarted(Android.Webkit.WebView view, string url, Android.Graphics.Bitmap favicon)
{
base.OnPageStarted(view, url, favicon);
view.Visibility = ViewStates.Invisible;
}
public override void OnPageFinished(Android.Webkit.WebView view, string url)
{
base.OnPageFinished(view, url);
view.EvaluateJavascript(_javascript, null);
view.Visibility = ViewStates.Visible;
}
}
但是我找不到显示启动的正确方法。我最终使用进度条而不是启动屏幕图像来显示chrome客户端中页面加载的进度,代码如下:
public class CusWebChromeClient : WebChromeClient
{
Android.Widget.ProgressBar progressBar;
public SistemiWebChromeClient(Android.Widget.ProgressBar progressBar)
{
this.progressBar = progressBar;
}
public override void OnProgressChanged(Android.Webkit.WebView view, int newProgress)
{
if (newProgress < 100 && progressBar.Visibility == ViewStates.Gone)
{
progressBar.Visibility = ViewStates.Visible;
}
progressBar.SetProgress(newProgress, true);
if (newProgress == 100)
{
progressBar.Visibility = ViewStates.Gone;
}
}
}
公共类CusWebChromeClient:WebChromeClient
{
Android.Widget.ProgressBar ProgressBar;
公共系统WebChromeClient(Android.Widget.ProgressBar ProgressBar)
{
this.progressBar=progressBar;
}
public override void OnProgressChanged(Android.Webkit.WebView视图,int newProgress)
{
if(newProgress<100&&progressBar.Visibility==ViewStates.Gone)
{
progressBar.Visibility=ViewStates.Visible;
}
progressBar.SetProgress(newProgress,true);
如果(newProgress==100)
{
progressBar.Visibility=ViewStates.Gone;
}
}
}
如果您使用的是XF,您可以将启动图像放置在webview上,并在webview通过导航的事件加载页面时将其隐藏。XF您能给我举个例子吗?我需要重新使用我的splash code,你能分享一下你首先使用webview的页面代码吗?下面是非常简单的检查一下我的要点,以便更好地理解我说的和