2015-07-28 109 views
0

我有一個iOS應用程序與UIWebView,我需要從服務器端接收href網址,然後提出該網頁是HTML5從該href在我的UIWebView:iOS如何知道html5按鈕是否被點擊加載UIWebView

MyViewController *myVC = [[MyViewController alloc] init]; 
myVC.url = serverSideResponse.href; 
[self.navigationController presentViewController:myVC animated:YES completion:nil]; 

在MyViewController.m,我有這樣的:

_webView = [[UIWebView alloc] initWithFrame:myFrame]; 
[self.view addSubView:_webView]; 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; 
[_webView loadRequest:request]; 

所以網頁是從服務器端,我想我的iOS應用程序/ web視圖知道該按鈕是點擊該頁面。更具體地說,如果該按鈕被點擊了,那麼我關閉了我的webview(意思是removeFromSuperView)。

現在我可以看到的是,當我檢查該網頁的源代碼時,我知道按鈕ID。

我收到的網址是:https://api.uber.com/v1/surge-confirmations/edbfdd9a-276b-4b85-b3f4-5a0c948a17fe。當我在我的web視圖中加載它時,它有一個按鈕,當我點擊它時什麼都沒有發生,只有控制檯記錄了點擊事件,請求是:https://api.uber.com/v1/surge-confirmations/edbfdd9a-276b-4b85-b3f4-5a0c948a17fe# < - 有一個額外的#

但是,當我把我的桌面瀏覽器中的網址顯示出來並點擊按鈕時,它可以按照預期重定向到下一個網址(https://www.uber.com)。

請指教,謝謝!

+0

你有什麼嘗試?你做了什麼研究?你看過Web視圖委託方法嗎? – Wain

+0

@Wain,我一直在尋找一個解決方案兩天,但我是新手,所以我沒有找到任何正確的方法。當然,我已經看過代表方法。例如,' - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)請求導航類型:(UIWebViewNavigationType)導航類型',這個我已經測試過了,我只添加'return YES;'但沒有幫助。 – Boris

+0

您是否記錄了傳遞的參數以查看它們是什麼? – Wain

回答

1

感謝@Wain和@palme,我發現了一個UIWebView委託回調方法

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

可以做到這一點。

參數requestnavigationType可以告訴你什麼導航類型觸發了什麼請求。

+0

你自己弄明白了。很高興我能幫上忙。 – palme

相關問題