当UIWebView(Iphone)加载完URL后,是否可以启动事件。
我怎样才能找到UIWebView的当前URL?
答案 0 :(得分:75)
是的,这是可能的。使用UIWebViewDelegate
协议并在您的委托中实施以下方法:
- (void)webViewDidFinishLoad:(UIWebView *)webView
如果您需要该网址,则可以使用该属性request
获取最后一个请求:
webView.request.URL
答案 1 :(得分:2)
找不到任何解决方案对我有用。
然后我发现这个例子至少比我在Google / StackOverflow上找到的任何其他解决方案都好得多。
答案 2 :(得分:1)
非常简单的方法:
第1步:在标头文件中设置委托UIWebViewDelegate
。
第2步:添加以下webViewDidFinishLoad
方法以获取webview
的当前网址
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
答案 3 :(得分:1)
Pascal对“获取URL”部分的回答很好。
然而!
来自Apple的UIWebViewDelegate文档: “webViewDidFinishLoad:在Web视图完成加载框架后发送。”
Frame!= Page。
当页面“完成加载”时,将调用webViewDidFinishLoad。在此之前也可以多次调用它。来自Amazon.com的页面加载可以生成对webViewDidFinishLoad的十几个调用。
如果您控制页面源,那么您可以对其进行负载测试,并且对于该情况它将起作用。如果你只关心在“页面加载完成后”被调用,那么webViewDidFinishLoad就足够了。
对于任意页面,使用任意JavaScript,永久加载广告横幅,或自动滚动横幅,或实施视频游戏,页面“完成加载”的想法是错误的。