2016-08-04 1 views
0

Я хотел бы написать свой собственный OauthClient, встроенный в уже доступный Ti.Network.HTTPClient.Appcelerator Titanium write custom HTTPClient

Я попытался наследовать от него со следующим кодом:

function OAuthClient (params) { 

    Ti.Network.HTTPClient.call(this, params); 

} 

OAuthClient.prototype = Object.create(Ti.Network.HTTPClient.prototype); 
OAuthClient.prototype.constructor = Ti.Network.HTTPClient; 

, но когда я пытаюсь создать новый OAuthClient следующим

var client = new OAuthClient({ 
    onload: function() {}, 
    onerror: function() {} 
}); 

я получил следующие ошибки:

[ERROR] : TypeError: Illegal invocation 
[ERROR] : File: app.js 
[ERROR] : Line: undefined 
[ERROR] : SourceId: undefined 
[ERROR] : Backtrace: 
[ERROR] : undefined 

Каков правильный способ создания пользовательского HttpClient в титане?

Спасибо!

+0

У вас есть желание изучить этот проект: https://github.com/viezel/napp.alloy.adapter.restapi – developer82

ответ

0

Вы устанавливаете this как контекст (window контекста), но когда HTTPClient называется, он надеется, что будет выполняться в контексте Ti.Network.

Вы можете это исправить изменения в Ti.Network.HTTPClient.call(Ti.Network, params) или var OAuthClient = Ti.Network.HTTPClient.bind(Ti.Network)

И метод Ti.Network.HTTPClient будет вызываться с ожидаемым контекстом.

+0

Привет, спасибо, но у меня такая же проблема, даже если изменить этот контекст – revy