Как я могу загрузить JSON из URL-адреса, используя единство для android? - PullRequest
0 голосов
/ 07 мая 2020

Я делаю приложение Unity для android, которое сканирует QR-код и отображает модель с некоторыми кнопками. Кнопки отображают информацию о событии, указанная информация хранится на веб-сайте. Приложение запрашивает информацию следующим образом:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.Networking;
using UnityEngine.UI;

public class WebTextLoader : MonoBehaviour
{
    // Start is called before the first frame update
    [Serializable]
    public class PlaceInfo
    {
        public string Titulo = "";
        public string Texto = "";
    }

    public string URL;
    public Text TituloUI;
    public Text TextoUI;

    public PlaceInfo placeInfo;

    public void Start()
    {
        if (Debug.isDebugBuild)
        {
            StartCoroutine(GetRequest(URL));

        }
    }
    IEnumerator GetRequest(string uri)
    {
        using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
        {
            // Request and wait for the desired page.
            yield return webRequest.SendWebRequest();

            string jsonForm = uri;

            if (webRequest.isNetworkError)
            {
                Debug.Log("Error loading");

            }
            else
            {
                try
                {
                    placeInfo = JsonUtility.FromJson<PlaceInfo>(webRequest.downloadHandler.text);
                    TituloUI.text = placeInfo.Titulo;
                    TextoUI.text = placeInfo.Texto;

                }
                catch
                {
                    Debug.Log("Error in connection");
                }
            }

        }
    }
}

При этом приложение отлично работает на компьютере, используя редактор, но когда я создаю apk и устанавливаю его на свой телефон ... дольше работает. Текст никогда не загружается, я проверил манифест Android, и все выглядит нормально:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" android:installLocation="preferExternal" android:versionCode="5" android:versionName="5.5">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
  <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true">
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application>
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

Также в настройках проигрывателя я проверил "inte rnet" как "require"

I не знаю, что меня здесь не хватает, тем более что хост, который я использую, является платным, поэтому у меня не должно быть проблем с ограничениями или прочим.

Я что-то делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...