0

如果我在 Objective-C 代码中的 url 中添加参数,是否可以从客户端读取它?

例子:

- (NSURL *)serverURL {
    return [NSURL URLWithString:@"http://rap.eclipsesource.com/demo?parametername=value"];
}

在 Client-JavaCode 中,我可以像这样获取参数的值:

String parameter = RWT.getRequest().getParameter("parametername");

如果我使用浏览器访问“应用程序”,我会得到参数的值。如果我使用 TabrisClient 访问应用程序,则值为 null。

有没有办法在 TabrisClient 中也获得价值?

4

1 回答 1

0

更新:

服务器不直接从请求 URL 中提取查询字符串,而是从客户端收到的第一条 JSON 消息中提取。Web 客户端在第一个 UI 请求queryStringhead部分提供参数。例子:

{ "head": { "queryString": "foo=23&bar=42", "requestCounter": ... }, "operations": [ ... ] }

您必须在 Tabris 客户端中伪造这种行为。我建议您向 Tabris 提出问题,以提供 API 来设置启动参数。

原答案:

如果您要在 tabris 客户端中对参数进行硬编码,则可以根据连接的客户端设置变量:

parameter = (RWT.getClient() instanceof WebClient)
          ? RWT.getRequest.getParameter("parametername")
          : "tabris-value";

顺便说一句,对请求参数的访问将在 RAP 3.0 中发生变化。ClientService 将提供参数,而不是 RWT.getRequest().getParameter()。

于 2015-04-14T10:39:35.553 回答