如何将此陈述变成实际的" if语句"在Xcode? p>
这就是我想要的" 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];
答案 0 :(得分:1)
要访问UIWebView中的实际页面内容,您需要使用
stringByEvaluatingJavaScriptFromString:
来调用某些JavaScript代码段。页面完成加载后,想法是遍历所有a
元素并检查其href
属性,并将其与您提到的“特定网站”进行比较。
粗略实施:
for (var i = 0; i < document.getElementsByTagName('a').length; i++)
{
if (document.getElementsByTagName('a')[i].href.match(/google/) return 'YES';
}
return 'NO';
- (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>