我正在编写一个iPhone应用程序,并且有一个UIWebView可以加载如下所示的URL:
http://www.example.com/search?query=dog
网站知道使用query=
之后的任何内容作为网站上的搜索字词。在这种情况下,“狗”。
应用程序中的WebView上方有一个搜索栏,用户可以使用该搜索栏搜索其他内容。因此,如果用户在搜索栏中键入“cat”并点击搜索,我希望URL更改为:
http://www.example.com/search?query=cat
我无法让它工作。它一直在加载页面,就像我在寻找狗一样。任何人都可以启发我如何更改URL并刷新WebView?这是我的代码的样子:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
urlString = @"http://www.example.com/search?query=%i", searchBar.text;
[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
[self.myWebView reload];
[searchBar setShowsCancelButton:NO animated:YES];
}
答案 0 :(得分:3)
取消对reload
的通话。这完全不需要,可能是你麻烦的原因。
我认为新网址的请求开始加载,在完成之前,它会刷新已加载的网址,取消加载。这就像点击浏览器中的链接,然后在加载新页面之前按下刷新按钮。您最终会刷新之前的页面。
答案 1 :(得分:2)
正确撰写您的网址字符串。
urlString =[[NSStrng alloc] initWithFormat:@"http://www.example.com/search?query=%@", searchBar.text];
答案 2 :(得分:0)
删除重新加载并使用stringWithFormat:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
urlString = [NSString stringWithFormat:@"http://www.example.com/search?query=%@", searchBar.text];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
[searchBar setShowsCancelButton:NO animated:YES];
}