2014-11-04 86 views
4

我的应用程序中有一个UIWebView,它解析服务器中的HTML并呈现它。我的挑战是这个HTML在其中有一个清单,并且我想要捕获下次我加载相同的HTML时用户检查和取消选中的内容。从UIWebView捕获信息

无论如何捕捉点击复选框?任何想法如何做到这一点?

在此先感谢。

+0

您是否控制该网站?或者这是第三方网站? – 2014-11-04 13:31:24

回答

1

它可以与Java脚本的帮助下完成的。它涉及多个步骤

  1. 添加一个监听器以记录事件'CheckboxStateChange'。
  2. 检查事件的目标ID是您想要的复选框的检查ID。如果这样捕获js变量中的值。
  3. 现在加载一个带有特定URL前缀的iframe if myevent://checkbox?id:value
  4. 如果加载了iframe,您的web视图将触发shouldStartLoadWithRequest方法。您可以从传递的请求对象中检查url方案。如果它是“myevent”,则可以解析URL字符串以存储适当的值。
  5. 下一次加载页面时,可以通过将JavaScript存储的值注入来设置值。
+0

我想我明白了,我需要将javascript添加到文件中并使用该事件触发包含检查ID的链接?你介意写一个小代码示例,你如何想象委托调用和javascript函数的样子。我理解这个概念,但我不确定如何做到这一点 – 2014-11-04 13:35:08

+0

我认为这已经解决了,因为我认为它给了我和任何其他人看这个足够的信息来解决问题,但是因为有兴趣除了我的这个问题我认为这是很好,如果theres一些简单的代码示例在答案。当我完成它,如果仍然没有代码,我会希望添加它。 – 2014-11-04 13:58:45

+0

@YoavSchwartz,这绝对有可能。因为我自己也执行过类似的事情。是的,我会在我的时间允许时添加一小段代码片段。 – Vignesh 2014-11-05 06:03:29

0

如果你可以改变HTML页面 - 你可以把焯芬变化JavaScript回调,并处理它

- (BOOL)webView:(CustomWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    return YES; 
}