检测UIWebView中的Javascript / Ajax更改

时间:2014-01-29 21:27:53

标签: javascript ios ajax uiwebview

我正在尝试检查是否为我的用户加载了某个页面。用户在UIWebView中进行注册过程,我想知道它何时完成。问题是注册不会改变网页,它使用Javascript和Ajax来更新屏幕上的内容。所以跑步:

[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText;"];

webViewDidStartLoad中仅在初始站点的第一次加载时返回。基本上我只想检查页面上的文本,只要它改变为字符串匹配“成功”之类的东西然后我会知道用户已成功登录。可能吗?

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。在您网页上的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;
}