【发布时间】:2023-08-29 13:27:01
【问题描述】:
我正在做一个apk,当我在手机上运行它时出现以下错误
“未知错误”
但最奇怪的是,如果我从 unity 运行它时它正常工作,我使用以下代码向我展示了当我在手机上执行它时出现的错误,因为在 unity 中运行完美
IEnumerator logIn(WWWForm form)
{
using (UnityWebRequest webRequest = UnityWebRequest.Post("http://localhost:3000/login", form))
{
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError )
{
Debug.Log(webRequest.error);
advertencia.SetActive(true);
advertencia.GetComponent<Text>().text=webRequest.error+"1";
}
else if (webRequest.isHttpError)
{
advertencia.SetActive(true);
advertencia.SetActive(true);
advertencia.GetComponent<Text>().text = webRequest.error+"2";
}
else
{
SceneManager.LoadScene("Principal");
}
}
}
使用以下代码检查我的 apk 是否已连接到互联网,如果它连接到互联网则显示文本
private void Update()
{
if (Application.internetReachability == NetworkReachability.NotReachable)
{
advertencia.SetActive(true);
Debug.Log("Error. Check internet connection!");
}
}
代码更完整一点:
private Text userText;
private InputField password;
public GameObject advertencia;
private void Start()
{
userText = GameObject.Find("UserInput").GetComponent<Text>();
password = GameObject.Find("PasswordInput").GetComponent<InputField>();
advertencia = GameObject.Find("Advertencia");
advertencia.SetActive(false);
}
//the function with which the corrutina invoked
public void Log()
{
Debug.Log("Usuario : " + userText.text + "\nContraseña : " + password.text);
WWWForm form = new WWWForm();
form.AddField("codigo", userText.text);
form.AddField("contrasena", password.text);
StartCoroutine(logIn(form));
}
【问题讨论】:
-
因为这个社区是英文的,所以我删除了西班牙文的副本。您能否添加一个完整的代码示例..您提供的内容并不多。
-
错误是 100% 可重复的还是间歇性的?间歇性网络错误是意料之中的,您必须处理它,通常通过重试您正在执行的任何操作。
-
@derHugo 准备好并添加更完整的代码
-
@RetiredNinja 当我在手机上运行它时,它总是会发生,但团结起来它永远不会发生
-
手机需要 https 或安全策略才能允许 http。
标签: unity3d webrequest unitywebrequest