2014-01-04 4 views
0

Так что я пытаюсь опубликовать на своем веб-сайте api и использовать обратный вызов, когда сообщение заканчивается. Все это прекрасно работает в редакторе Unity и в качестве настольного приложения, но не работает в веб-проигрывателе. Я сузил его до того, что callback фактически не вызвал. Как я могу использовать обратные вызовы? Вот мой код:Обратный звонок никогда не запускается в Unity Web Player

void ui_login() { 
if (uiBase == null) 
    return; 

Debug.LogError(uiBase); clicks++; status = "(" + clicks + ")" + "working"; 

var username = uiBase.UIElements.FirstOrDefault(e => e.Name == "txt_username"); 
var password = uiBase.UIElements.FirstOrDefault(e => e.Name == "txt_password"); 
try 
{ 
    var request = new LoginRequest() 
    { 
     Email = username.Text, 
     Password = password.Text 
    }; 
    StartCoroutine(WaitForRequest<LoginResponse>(request, loginCallback)); 
} 
catch (Exception e) 
{ 
    status = "(" + clicks + ")" + e; 
} 
} 

void loginCallback(LoginResponse response, WWW www) 
{ 
if (www.error != null) 
    status = www.error; 
if (response != null) 
    status = response.ErrorMessage; 
} 

IEnumerator WaitForRequest<TResponse>(
LoginRequest request, Action<TResponse, WWW> callback) 
{ 
var json = JsonMapper.ToJson(request); 
var www = new WWW("http://someurl.com", json.ToBytes()); 
yield return www; 
TResponse response; 
if (www.error == null && www.isDone) 
{ 
    var str = Encoding.UTF8.GetString(www.bytes); 
    print(str); 
    status = str; 
    response = JsonConvert.DeserializeObject<TResponse>(str); 
} 

else 
    response = default(TResponse); 

print("somthif"); 
callback(response, www); 
} 

ответ

0

По соображениям безопасности Unity Web Player работает в Песочнице и блокирует ваши HTTP-запросы.

Для устранения этой проблемы следуйте процедуре, описанной по этой ссылке: http://docs.unity3d.com/Documentation/Manual/SecuritySandbox.html

Смежные вопросы