【问题标题】:Appcelerator Titanium write custom HTTPClientAppcelerator Titanium 编写自定义 HTTPClient
【发布时间】:2016-08-04 16:30:50
【问题描述】:

我想在已经可用的 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 的正确方法是什么?

谢谢!

【问题讨论】:

标签: inheritance titanium httpclient appcelerator


【解决方案1】:

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

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

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

【讨论】:

  • 嗨,谢谢,但即使更改此上下文,我也遇到了同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多