无法通过代码将UIWebView重新加载到新URL

时间:2013-06-26 14:35:08

标签: ios uiwebview nsurlrequest

在viewDidLoad上的UIWebView上加载URL。

- (void)viewDidLoad
{
   [super viewDidLoad];
   [webView loadRequest:[NSURLRequest requestWithURL:[NSURL      
   URLWithString:@"http://abc.com/Test.html"]]];
}

然后在NSTimer上运行以下命令来执行javascript。对JavaScript的调用效果很好。

-(void)WebViewLoad:(NSTimer *)theTimer
{

    NSString *abcFiles  = [webView stringByEvaluatingJavaScriptFromString:@"abc.length"];
    NSLog(@"The TotalNumberOfFiles is %i",abcFiles); //This works
//--------------------------------------------------------
    NSString *currentURL = webView.request.URL.absoluteString;
    NSLog(@"Current url 1 is %@",currentURL);

   [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://abc.com/newpage.html"]]];
   [self.view addSubview:webView];


   NSString *currentURL2 = webView.request.URL.absoluteString;
   NSLog(@"Current url 2 is %@",currentURL2);
}

评论专线上方的所有内容都有效。 但是添加新URL的部分,我仍然可以获得初始URL。 我尝试添加重新加载。那没起效。 尝试创建一个新的UIWebView对象也无法正常工作。

结果是

Current url 1 is http: //abc.com/Test.html 
Current url 2 is http: //abc.com/Test.html

我想要

Current url 1 is http: //abc.com/Test.html
Current url 2 is http: //abc.com/newpage.html

另一个问题是“我们可以从代码加载一个新的URL。它不是通过按钮或任何动作来的。它来自一个重复的计时器。这是一个问题吗?”

1 个答案:

答案 0 :(得分:0)

您没有看到预期请求的原因是request的{​​{1}}属性未被UIWebView更改,直到 请求之后完全加载,包括所有重定向和资产。