2014-11-04 56 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; 
}