检测UIWebView中的Javascript/Ajax更改
我正在尝试检查是否为我的用户加载了某个页面。用户在UIWebView中经历注册过程,我想知道注册过程何时完成。问题是注册不会改变网页,它使用Javascript和Ajax更新屏幕上的内容。如此运行:检测UIWebView中的Javascript/Ajax更改,javascript,ios,ajax,uiwebview,Javascript,Ios,Ajax,Uiwebview,我正在尝试检查是否为我的用户加载了某个页面。用户在UIWebView中经历注册过程,我想知道注册过程何时完成。问题是注册不会改变网页,它使用Javascript和Ajax更新屏幕上的内容。如此运行: [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText;"]; 在webViewDidStartLoad中,仅在首次加载初始站点时返回。基本上,我只想检查页面上的文本,只要它变为字符串
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText;"];
在webViewDidStartLoad中,仅在首次加载初始站点时返回。基本上,我只想检查页面上的文本,只要它变为字符串匹配,比如Success,那么我就知道用户已经成功登录了。可能吗?是的,你可以这样做。在页面上的JavaScript中,执行以下操作
window.location = 'myprotocol://userDidSignUp'
然后在UIWebViewDelegate中执行以下操作
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
if(request == nil)
{
return YES;
}
NSString* urlStr = [[request URL] absoluteString];
if(urlStr != nil && [urlStr isEqualToString:@"myprotocol://userDidSignUp")
{
//User signed in
return NO;
}
return YES;
}
不幸的是,他们没有注册到由我控制的网站。你可以编写javascript来检查DOM,看看是否有文本发生了更改,然后使用stringByEvaluatingJavaScriptFromString运行它:你可以每1-2秒运行一次。我不确定这是否是最好的解决方案。是的,这就是我正在做的。这是可行的,但不知道是否有更有效的解决方案。谢谢你的帮助!