如何将其转换为代码形式(如果声明)

时间:2014-08-09 19:01:19

标签: ios xcode url uiwebview

如何将此陈述变成实际的" if语句"在Xcode?

这就是我想要的" if语句" :

"如果UIWebView中显示某个链接,则image.hidden = NO;"

UIWebView目前正在展示另一个网站,但它在该网站上有一个页面,它是我在if语句中提到的特定链接。

UIWebView的代码是:

.h:
IBOutlet UIWebView *Name;
NSURL *NameURL;

.m

NameURL = [NSURL URLWithString:@"mywebname.com"];
NSURLRequest *Request = [NSURLRequest requestWithURL: NameURL];
[Name loadRequest: Request];

2 个答案:

答案 0 :(得分:1)

要访问UIWebView中的实际页面内容,您需要使用 stringByEvaluatingJavaScriptFromString:来调用某些JavaScript代码段。页面完成加载后,想法是遍历所有a元素并检查其href属性,并将其与您提到的“特定网站”进行比较。

粗略实施:

JS代码

for (var i = 0; i < document.getElementsByTagName('a').length; i++)
{
  if (document.getElementsByTagName('a')[i].href.match(/google/) return 'YES';
}
return 'NO';

Obj-C代码

- (void)webViewDidFinishLoad:(UIWebView *)webView {
  NSString *test = [webView stringByEvaluatingJavaScriptFromString:aboveJSString];
  if ([test isEqualToString:@"YES"]) image.hidden = NO;
}

希望它有所帮助。

答案 1 :(得分:0)

根据Anh Do的回答stringByEvaluatingJavaScriptFromString对我来说不可靠。 相反,你应该使用:

currentURL = currentWebView.request.URL.absoluteString;

所以代码就像......。

- (void)webViewDidFinishLoad:(UIWebView *)webView {

    NSLog(@"HELLO DID GET CALLELDLLL LL LL LL ");

    //get the url you webView called "Name" is displaying...
    NSString *currentURL = Name.request.URL.absoluteString;
    //Check if that url is "mywebname.com"
    if ([currentURL isEqualToString:@"mywebname.com"])
    {
         image.hidden = NO;
    }
}

<强> PS。不要为您添加代理webview

通过设置委托来做这个..

ViewDidLoad

[Name setDelegate:self];

在.h文件中

@interface "nameofyourviewcontroller" : UIViewController<UIWebViewDelegate>