2016-08-04 33 views
0

我想编写我已经可用的Ti.Network.HTTPClient内置的自定义OauthClient。Appcelerator钛编写自定义HTTPClient

我试图从它继承与下面的代码:

function OAuthClient (params) { 

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

} 

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

但是当我尝试如下

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

创建一个新的OAuthClient我得到了以下错误:

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

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

谢谢!

+0

Haveyou试图调查这个项目: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