gpt4 book ai didi

xamarin - 如何在 Xamarin PCL 中显示错误消息

转载 作者:行者123 更新时间:2023-12-03 07:46:35 25 4
gpt4 key购买 nike

我正在做一个简单的 try/catch(在 PCL 项目中)来验证用户与应用程序的连接,但我似乎找不到 Xamarin 网站示例中使用的 DisplayAlert() 方法。

以下是我的用法:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Security;
using System.Diagnostics;

这是代码:
public async Task Connexion()
{
// on met en place un try catch pour déceler toute erreur dans la procédure de connexion
try
{
// url de récupération du json de l'acteur
string urlActeur = "http://10.0.0.5/ppe3JoJuAd/gsbAppliFraisV2/webservices/w_visiteur.php" + "?" + "login=" + Login + "&" + "pass=" + Pass;

//instanciation du client http qui envoi un header json
HttpClient clientActeur = new HttpClient();
clientActeur.DefaultRequestHeaders.Accept.Clear();
clientActeur.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

//réponse à la requête Http
var response = await clientActeur.GetAsync(urlActeur);
var json = response.Content.ReadAsStringAsync().Result;
var acteurJson = JsonConvert.DeserializeObject<ActeurJson>(json);

//on vérifie les informations de connexion du user (ici cela se ait avec oldMdp car pas d'implémentation du SHA1 actuellement en Xamarin, auquel cas nous auions converti le contenu du champ pass en sha1 puis vérification avec le champ mdp de l'acteur)
if (acteurJson.Acteur.login == login && acteurJson.Acteur.mdp == acteurJson.Acteur.oldMdp)

App.Current.MainPage = new VisitePage();
}
catch
{
await DisplayAlert()//intelisense does not find the using or the required dll

}

我应该在哪里看或我应该怎么做才能显示消息?

最佳答案

您不应该从任务中执行 DisplayAlert。您应该将有关失败的消息转发回调用类,或者只是向调用类提出异常。让任务返回 UI 并引发消息是不好的。

您对 HttpClient 的使用也已关闭。 HttpClient 旨在用作单例方法。尝试为每个项目或模块创建一个静态单例。

说了这么多,试试这个:

public class ConnexionHelper
{
public async Task Connexion()
{
try
{
System.Diagnostics.Debug.WriteLine("trying stuff");
}
catch( Exception ex )
{
Xamarin.Forms.Page ourPage = App.Current.MainPage.Navigation.NavigationStack.LastOrDefault();
if (ourPage != null)
{
await ourPage.DisplayAlert("eeek", "error has occurrred", "not ok");
}
}
}

关于xamarin - 如何在 Xamarin PCL 中显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43835876/

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