2014-01-29 27 views
1

我試圖檢查某個頁面是否爲我的用戶加載。用戶在UIWebView中通過註冊過程,我想知道它何時完成。問題是註冊不改變網頁,它使用Javascript和Ajax來更新屏幕上的內容。所以運行:檢測UIWebView中的Javascript/Ajax更改

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

webViewDidStartLoad只在初始站點的第一個加載時返回。基本上我只是想檢查頁面上的文字,只要它更改爲字符串匹配,如「成功」,然後我就知道用戶已成功登錄。可能嗎?

回答

0

是的,你可以這樣做。在您的網頁上javacript做這樣的事情

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; 
} 
+0

不幸的是,他們沒有簽署了由我控制的網站 – JeffN

+1

你可以寫JavaScript來檢查DOM來看看是否有一些文本已經改變,並用'stringByEvaluatingJavaScriptFromString:'運行它,你可以每隔1-2秒運行一次。但我不確定,如果這是最好的解決方案。 –

+1

雅這就是我正在做的。它的工作原理,但想知道是否有更有效的解決方案。謝謝你的幫助! – JeffN