Appcelerator Titanium编写自定义HTTPClient

时间:2016-08-04 16:30:50

标签: inheritance titanium httpclient appcelerator

我想在已经可用的Ti.Network.HTTPClient上编写我的自定义OauthClient。

我尝试使用以下代码继承它:

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

在Titanium中编写自定义HttpClient的正确方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

您将this设置为上下文(window上下文),但在调用HTTPClient时,他希望在Ti.Network的上下文中执行。

您可以将其修改为Ti.Network.HTTPClient.call(Ti.Network, params)var OAuthClient = Ti.Network.HTTPClient.bind(Ti.Network)

将使用预期的上下文调用Ti.Network.HTTPClient方法。