在Titanium Appcelerator上使用HTTP客户端打开重复的窗口

时间:2011-12-12 10:18:24

标签: httpclient titanium

在我目前的Android应用程序中,我有一个HTTP客户端,它向网站发送请求,并将JSON响应转换为tableview。我注意到,当我打开结果窗口并在表格中滚动时,我实际上有两个相同的表,一个在另一个上面。我注意到的另一个问题是,当我按下android:back按钮时窗口关闭,我得到一个黑色的空窗口,为了获得原始主视图,我需要再次点击后退按钮。这里添加了the main window codesearch result page。 谢谢你!

- 同样的问题发布在[appcelerator Q& A]

上 好的,流程是这样的: 1.主窗口(win 1)打开,它有一个搜索栏和2个按钮。每个按钮打开同一窗口的不同版本(赢2)。

  1. win 2有一个搜索栏和几个按钮。
  2. 如果任何窗口(1或2)上的搜索栏被填充并执行,则打开第三个窗口(win 3)。

    1. 在此窗口中,HTTP客户端(xhr)发送正确的请求并解析响应文本(JSON),然后填充表视图(tv)。
    2. 表格视图在另一个上面显示两次,当我添加一个警告窗口的事件时,我会在“你在搜索窗口”警告框中两次。

      当我点击后退按钮时,我会回到一个空的白色窗口。如果我再次单击后退按钮,我会回到原来的窗口。

      - 更新:我重写了整件事,但仍然没有任何反应。

      ---- update:我添加了一个标志来防止“onload”函数被调用两次,但这只是一个hack。 我正在寻找一个更基本的答案

1 个答案:

答案 0 :(得分:1)

首先,关于'开放'事件,它会发射两次。版本1.8.0.1中存在一个错误,当'open'事件被触发两次(bugtracker)时,它在版本1.8.1(changelog)中得到修复。我测试了新版本并且所有工作都很好 - “开放”事件只发射一次。

其次,关于后退按钮。正如我在您的代码中看到的那样,您使用tab.open。您可以直接使用'open'作为窗口,而不是tab。对于iPhone,您可以创建导航组(wiki)。还记得使用HeavyWeight窗口,使“后退”按钮工作。为此目的添加modal:true属性,但尝试使用fullscreen:false。