2013-08-06 33 views
1

我從來沒有真正使用過UIWebView,所以我不確定從哪裏開始。實際上,我正在與正在爲我目前正在開發的應用程序構建此Web平臺的開發人員合作。用戶應填寫WebView中的表單。其中一個領域是他們想要購買的票的目的地。在應用程序中,我們已經有一個ViewController,這是很好的佈局,允許用戶輸入一個自定義的目的地或從預定義的列表中選擇。當點擊WebView中的文本字段時,是否可以顯示此ViewController?當用戶完成後,該字段將填充選定的目的地。有沒有更好的方式來做到這一點(沒有給Web開發者帶來負擔),我只是在愚蠢?當UIWebView中的textField被按下時顯示ViewController

就像我說的,我從來沒有真正以這種方式與一個UIWebView工作之前,我通常喜歡讓我的應用程序100%原生,但這裏是我是如何想象一個去它可能工作:

-(void)someMethodThatsCalledWhenTextFieldIsPressed { 
    AttachDestinationViewController *vc = [[AttachDestinationViewController alloc] init]; 
    [self presentViewController:vc animated:YES completion:nil]; 
} 

然後在AttachDestinationViewController我們會做這樣的事情:

-(void)didFinish { 
    CustomUIWebViewClass *parentViewController = (CustomUIWebViewClass *)self.parentViewController; 
    parentViewController.propertyForTextField.text = self.locationEntered.text; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

這就是我會然而設想,如果它是一個正常的ViewController,我完全不知道我們怎麼會叫-(void)someMethodThatsCalledWhenTextFieldIsPressed,也不是我們如何將創建爲UIWebView中的textField添加了。

任何幫助將不勝感激,
問候,
邁克

回答

2

首先你需要一個按鈕添加到您的UIWebView

是這樣的:通過點擊

<a href="#" class="buttonStyle">Click me!</a> 

執行自定義代碼html中的鏈接(按鈕)

然後執行shouldStartLoadWithRequest

您按鈕鏈接應該是這樣的:

<a href="button://dosomething" class="buttonStyle">Click me!</a> 

現在實現shouldStartLoadWithRequest這樣的:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    // only do something if a link has been clicked... 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {  

      // check if the url requests starts with our custom protocol: 
     if ([[[request URL] absoluteString] hasPrefix:@"button://"]) 
     { 
      [self CallYourMethodButton]; 
      return NO; 
     } 
    } 

    return YES; 
} 

此方法將檢測到您根據標題,在這裏你可以調用點擊HREF按鈕您的按鈕的方法。

編輯:

那麼邁克那麼它仿如進入數據和從一種形式吧?然後,您需要獲取文本字段的元素名稱或元素ID。請通過以下鏈接: -

Finding and auto-filling HTML login forms in a UIWebView using JavaScript

ios - Injecting text into a UIWebView textField

+0

非常感謝你,這解決了這個問題(+1)的第一部分,但對於從VC要回的WebView ,將前者的價值傳遞給後者?麥克風。 – Mackey18

+0

亞邁克請查看我的編輯.... :) – IronManGill

相關問題