2011-06-20 58 views
2

我試圖讓UIWebView中加載的URL的哈希代碼得到URL的哈希代碼,我已經嘗試不同的方法似乎並沒有工作。如何從一個UIWebView

例如,如果一個UIWebView裝載「http://www.mysite.com/home#main」:

NSURL *url = [NSURL URLWithString:@"http://www.mysite.com/home#main"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:request]; 

話,我想獲得完整的URL,但它只返回「HTTP ://www.mysite.com/home」有3點不同的方法:

1:

NSString *currentURL = [webView.request.URL absoluteString]; 

2:

NSString *currentURL = [NSString stringWithFormat:@"%@",[[webView request] URL]]; 

3:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.hash"]; 

我缺少什麼

+0

我認爲問題是,哈希代碼被忽略的UIWebView,我能夠得到的雜湊片段,如果我做百分之逃脫網址:NSURL * URL = [NSURL URLWithString:@「HTTP://www.mysite .COM /家用%23main「]; ,但這是,如果您正在加載已知URL的解決方案,問題是,如果一個網頁內的鏈接有哈希代碼則西港島線由UIWebView的 – krisrak

+0

被忽略,我不認爲NSURL * URL = [NSURL URLWithString:@「的mysite .COM /家用%23main「];可以將%23轉換爲「#」 – Forrest

回答

1

嘗試NSString *fragment = [webView.request.URL fragment];

+1

嘗試過,我的價值爲(空) – krisrak

0

使用下面的代碼片段
的NSLog(@ 「散列片段:%@」,[的NSString stringWithFormat:@「% @」,webview.request.URL.fragment]);

1

[webview stringByEvaluatingJavaScriptFromString:@"window.location.hash"]是我成功獲得哈希片段在我的情況下,唯一的辦法

我失敗了接近1和方法2

也許你的代碼錯了好歹別人......

+0

它適用於我。其他人總是給我零。 – inherithandle

0

我認爲你應該檢查,request.url.absolutestring對shouldStartLoadWithRequest,webViewDidFinishLoad片段。

+0

這看起來更像是對我的評論,而不是一個獨立的答案。你可能想在這裏查看一些提示:http://stackoverflow.com/help – Andrej