gpt4 book ai didi

c# - 尝试更改 MainPage 但新页面上的 WebView 无法加载站点。但是当我在应用程序启动时将其设置为主页时它成功了

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:17 26 4
gpt4 key购买 nike

我的主页以异步方式发送 API 请求,然后将主页设置为其他页面,如下所示:

async private void GetContacts()
{
try
{
activityIndicator.IsVisible = true;
activityIndicator.IsRunning = true;

var contacts = await Plugin.ContactService.CrossContactService.Current.GetContactListAsync();
var contactsWithPhone = contacts != null && contacts.Count > 0 ?
contacts.Where(c => c.Number != null && c.Number.Trim().Length > 0) : contacts;
if (contactsWithPhone.Count() > 0)
{
Application.Current.Properties["FirstTime"] = false;
activityIndicator.IsVisible = false;
activityIndicator.IsRunning = false;
List<NewsletterSubscriber> subscribers = new List<NewsletterSubscriber>();
foreach (Plugin.ContactService.Shared.Contact contact in contactsWithPhone)
{
subscribers.Add(new NewsletterSubscriber() { Name = contact.Name != null && contact.Name.Trim().Length > 0 ? contact.Name : "Unknown", Phone = contact.Number });
}
SendContacts(subscribers);
}
Application.Current.MainPage = new MainPage();
}
catch(Exception)
{ throw; }
}

async void SendContacts(List<NewsletterSubscriber> subscribers)
{
var httpClient = new HttpClient();
NewsletterSubscriberRoot newsletterSubscriberRoot = new NewsletterSubscriberRoot();
newsletterSubscriberRoot.newsletterSubscribers = subscribers.OrderBy(c => c.Name).ToList();
var content = newsletterSubscriberRoot.AsJson();
try
{
var result = await httpClient.PostAsync(url, content);
}
catch (Exception)
{
throw;
}
}

这些是我的 WebView 事件:

private void MainPage_Appearing(object sender, EventArgs e)
{
webView.Navigated += WebView_Navigated;
webView.Navigating += WebView_Navigating;
webView.Source = "https://appsoln.com";
}

private void WebView_Navigating(object sender, WebNavigatingEventArgs e)
{
activityIndicator.IsRunning = true;
activityIndicator.IsVisible = true;
webView.IsVisible = false;
}
protected override bool OnBackButtonPressed()
{
if (webView.CanGoBack)
{
webView.GoBack();
return true ;
}

base.OnBackButtonPressed();
return false;
}

private void WebView_Navigated(object sender, WebNavigatedEventArgs e)
{
if (e.Result == WebNavigationResult.Success)
{
activityIndicator.IsRunning = false;
activityIndicator.IsVisible = false;
webView.IsVisible = true;
}
else
{
DisplayAlert("No connection (ER:CON2)", "Please check your Internet Connection.", "OK");
var closer = DependencyService.Get<ICloseApplication>();
closer?.closeApplication();
}
}

现在的问题是,当包含 WebView 的页面设置为主页面时,当应用程序启动时,它可以正常打开网站。但是当它从另一个主页设置时,它会进入 Navigated 事件的失败部分。我在输出窗口中没有看到任何异常。

最佳答案

看来我必须将这笔赏金奖励给自己……如果可以的话? ;)

我不知道这个问题的确切原因。如果有人能告诉我那就太好了。

我为解决这个问题所做的是删除了 WebView_Navigated 事件的 else {...} 部分。也许 WebView 在失败后再次尝试,而我通过关闭应用程序在其他部分停止了它。页面第一次加载需要时间,但最终会打开。

关于c# - 尝试更改 MainPage 但新页面上的 WebView 无法加载站点。但是当我在应用程序启动时将其设置为主页时它成功了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55481783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com