Java android编程和javascript

时间:2011-10-23 01:11:01

标签: java javascript android

我正在开发一个Android应用程序,它从使用JavaScript的网站获取其信息。

我想通过我的Android应用程序运行一个java脚本函数。

在示例中:此网站http://www.bgu.co.il/tremp.aspx在javascript函数的底部(希伯来语)中有“下一页”。我想通过我的应用程序进入下一页。

如何向网站发送“移至下一页”命令或激活按钮的onClick事件?

编辑:我正在使用XML解析器(sax解析器)从此站点获取信息,我想进入此站点的下一页以便解析它。我希望我现在明确了自己

3 个答案:

答案 0 :(得分:1)

你真的需要更充分地解释......

您是打开该页面并在代码中解析它,是否嵌入了WebView,或者只是创建一个Intent,在用户首选的Web浏览器中打开该页面?

如果是后者,那么你绝对不能做你所建议的。

如果你使用的是WebView我很确定你仍然无法以你想要的方式访问页面的DOM

这意味着您的解决方案是在代码中加载和解析网页 - 提取“下一页”,然后根据您的意愿进行操作...

答案 1 :(得分:1)

查看Android Developer Guide

中的在WebView中使用JavaScript部分

答案 2 :(得分:0)

好的 - 现在我们知道您正在解析我可以尝试回答您问题的页面!

你不能在已解析的页面上“点击”某些内容,因为你没有Javascript引擎 - 它只是一个XML文档 - 由文本构成的节点集合。

在这种情况下,您需要确定分页系统的实际工作方式 - 并查看Firebug之类的页面使其变得非常简单。

分页系统通过FORM POST机制工作 - 当您单击“下一步”或页码如“2”时,它只是从服务器加载相同的页面,但设置了POST变量。

关键变量是“__EVENTTARGET” - 它告诉ASP加载哪个页面(当然是希伯来文)。

障碍是你需要从这个页面传递所有其他POST变量 - 这是每个INPUT与它的相关值。我注意到有一个名为“_ EVENTVALIDATION”的东西似乎存在,只是为了阻止人们通过传递“ _EVENTTARGET”来轻松解决这个问题。

像Fiddler这样的工具在这里也很有用 - 当你点击NEXT时它会显示POST到服务器的内容 - 所有你需要做的就是在你的调用中复制它再次加载页面你有下一页 - 并在每个页面重复一遍,直到没有任何东西可以加载......

或者,您可以切换到使用WebView - 将页面加载到那意味着它确实有一个Javascript引擎,您可以自动执行“点击”(虽然我不知道如何执行此操作的具体细节,其他答案暗示它可能吗?)?