是否可以在UIWebView中侦听Javascript发布的通知?还是类似的?我曾想过在Objective-C中重复一个监视JS变量的函数,但肯定有更好的方法吗?
我想在UIWebView中加载特定图像时(我可以在jQuery中使用.load方法),当图像加载时我想隐藏原生UIActivityIndicator。我不想在网络视图中使用gif!
即
$('img.someImage').load(function(){
//fire something for obj-c to listen to!
});
答案 0 :(得分:2)
将事件从您的html页面传递到iPhone应用程序的唯一方法是使用url,
如果您想要传递特殊的偶数,请将您的js更改为新的网址,例如"MyCustomURl://DoSomeThing"
现在,在您的iPhone应用程序中,将webView
的代理设置为self
并添加以下功能
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *absolute = [request.URL absoluteString];
if ([absolute isEqualToString:@"MyCustomURl://DoSomeThing"]) {
//Do what you want here
return NO;//this will not load the url
}
return YES;
}