对于我的 Flash Builder 4.6 项目,我定义了一个 http 服务,它查看我们网站上的一个 url。
不过,我希望能够在应用程序中动态更改 Web 服务 url。即默认使用现有的 url,但有一个管理/设置屏幕来更改 Web 服务指向的位置(存储在我们的 sqlite 数据库或本地内存中)。
这样我们就可以允许我们的客户托管他们自己版本的网站/数据库,但仍然能够通过应用商店使用/下载应用程序。
有没有人有这样做的经验?
编辑:在下面的评论之后添加更多细节。
当我通过 FlashBuilder 向导创建 HTTP 服务时,它创建了两个 Web 服务类,一个超类和一个从超类继承的子类。向导填充的所有代码都进入超类。
我可以假设我需要放入的代码将在子类中。但我不知道我会把它放在哪个功能或如何。
下面是 Super 的构造函数示例:
// initialize service control
_serviceControl = new mx.rpc.http.HTTPMultiService("websitehere");
var operations:Array = new Array();
var operation:mx.rpc.http.Operation;
var argsArray:Array;
operation = new mx.rpc.http.Operation(null, "loginRequest");
operation.url = "login.php";
operation.method = "GET";
argsArray = new Array("un","pw");
operation.argumentNames = argsArray;
operation.serializationFilter = serializer0;
operation.properties = new Object();
operation.properties["xPath"] = "/";
operation.contentType = "application/x-www-form-urlencoded";
operation.resultType = valueObjects.Data;
operations.push(operation);
_serviceControl.operationList = operations;
我不确定需要更改 _serviceControl 变量的哪些属性。
此外,当我在我的代码中搜索我的网站时,它会在 .model 目录中返回一个 .fml 文件,如果我通过向导更改服务 url,它似乎会自动刷新。这不会引起问题吗?
然后我面临访问用户定义的 url 的挑战。在应用程序中,我们使用 sqlite 数据库来存储数据,但我认为使用“SharedObject”可能会更好,我们也可以使用它来了解他们登录的帐户。这有多可靠?我想我可以通过服务访问它吗?
虽然尴尬的是我们计划在登录后访问的设置屏幕上进行此配置。但要登录它已经需要知道指向哪个服务器。