Javascript DOM就绪上的iOS UIWebView
我的问题是UIWebView在呈现其内容之前触发webViewDidFinishLoad,因此在显示视图之后,在显示视图内容之前会有一个短暂的延迟。完全呈现DOM时是否可以触发事件?是的,请使用JavaScript执行此操作。在HTML页面中添加window.onload JavaScript处理程序,然后当它启动时,您可以执行以下两项操作之一:Javascript DOM就绪上的iOS UIWebView,javascript,objective-c,ios,uiwebview,onload,Javascript,Objective C,Ios,Uiwebview,Onload,我的问题是UIWebView在呈现其内容之前触发webViewDidFinishLoad,因此在显示视图之后,在显示视图内容之前会有一个短暂的延迟。完全呈现DOM时是否可以触发事件?是的,请使用JavaScript执行此操作。在HTML页面中添加window.onload JavaScript处理程序,然后当它启动时,您可以执行以下两项操作之一: 通过加载一个假URL并使用webview委托截取该URL来调用应用程序。例如 //in your web page, in javascript w
//in your web page, in javascript
window.onload = function() { document.location.href = 'http://madeupdomain.com/loaded'};
//webview delegate in cocoa
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *URL = [request URL];
NSString *host = URL.host;
if ([host isEqualToString:@"madeupdomain.com"])
{
//the webview has finished loading, so show it
webview.hidden = NO;
return NO;
}
return YES;
}
//in your web page, in javascript
window.pageHasLoaded = false;
window.onload = function() { window.pageHasLoaded = true; };
//in a timer in your native app code
if ([[webview stringByEvaluatingJavascriptFromString:@"window.pageHasLoaded"] isEqualToString:@"true"])
{
webview.hidden = NO;
}
@interface LoadNewsPageController : UIViewController <UIWebViewDelegate>
@property(nonatomic, weak) IBOutlet UIWebView *webView;
@end
@implementation LoadNewsPageController {
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.webView.delegate = self;
NSLog(@"%@", self.newsObject.url);
NSURL *websiteUrl = [NSURL URLWithString:@"http://google.com"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl];
[self.webView loadRequest:urlRequest];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
if ([[webView stringByEvaluatingJavaScriptFromString:@"document.readyState"] isEqualToString:@"complete"]) {
// UIWebView object has fully loaded.
NSLog(@"Dom ready");
}
}
@end
@接口LoadNewsPageController:UIViewController
@属性(非原子,弱)ibuiwebview*webView;
@结束
@LoadNewsPageController的实现{
}
-(无效)viewDidLoad{
[超级视图下载];
//加载视图后执行任何其他设置。
self.webView.delegate=self;
NSLog(@“%@”,self.newobject.url);
NSURL*网站URL=[NSURL URLWithString:@”http://google.com"];
NSURLRequest*urlRequest=[nsurlRequestRequestWithURL:websiteUrl];
[self.webView loadRequest:urlRequest];
}
-(无效)webViewDidFinishLoad:(UIWebView*)webView{
如果([[webView stringByEvaluatingJavaScriptFromString:@“document.readyState”]IsequalString:@“complete”]){
//UIWebView对象已完全加载。
NSLog(@“Dom就绪”);
}
}
@结束