获取当前webview URL并将其传递到另一个视图

时间:2012-09-21 18:51:30

标签: ios variables nsurl

好的,所以我试图获取webView的当前URL,以便我可以解析它并隔离一个数字..但是变量_webURL没有使用URL设置。 URL没有使用以下内容打印到日志,为什么?:

初始显示的实现:

@synthesize adWebView1;
@synthesize webURL = _webURL;

...

- (void)viewDidLoad
{
    [adWebView1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.web.org/bannercontroller.php"]]];

    _webURL = adWebView1.request.URL.absoluteString;
    NSLog(@"The Current URL is", _webURL);

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

- (void)viewDidUnload
{
    adWebView1 = nil;
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

我将其修改为:

- (void)viewDidLoad
{
    [adWebView1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.web.org/bannercontroller.php"]]];

    NSString *rawURL = [adWebView1 stringByEvaluatingJavaScriptFromString:@"location.href;"];

    NSLog(@"Das URL ist", *rawURL);
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

产生以下错误:

无法通过veriadic函数传递接口类型为'NSString'的对象。

1 个答案:

答案 0 :(得分:0)

您使用该请求创建webview,但从那里它将不再使用该请求,因此它可能不会更新请求对象。

创建webview时,请求将开始。它不会等到请求完成,因此您可能需要检查请求是否仍在运行。

以后可以使用以下网址获取:

NSString *rawLocationString = [adWebView1 stringByEvaluatingJavaScriptFromString:@"location.href;"];

我不确定它是否已在viewDidLoad中可用。

顺便说一句: 你不应该致电URL.absoluteString。虽然它在技术上可行,但它不正确。 absoluteString是一个方法,而不是一个属性,所以你不应该像它那样访问它。