2013-05-07 4 views
1

Я пытаюсь получить токен доступа, я следую за this ссылкой, чтобы получить это, но какое-то условие терпит неудачу, я думаю, что я неправильно добавляю javascript с содержимым HTML.ios - Как добавить javascript с содержимым HTML?

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
if(_data) 
{ 
    NSString* content = [[NSString alloc] initWithData:_data 
               encoding:NSUTF8StringEncoding];  
    [_data release]; 
    _data = nil;   
NSString *jsString = @"<script type='text/javascript'>\ 
    window.external =\ 
    {\ 
    'Notify': function(s) { document.location = 'acs://settoken?token=' + s; },\ 
    'notify': function(s) { document.location = 'acs://settoken?token=' + s; }\ 
    }\ 
    </script>"; 

content = [jsString stringByAppendingString:content];     
[webView loadHTMLString:content baseURL:_url]; 
} 
} 

- (BOOL)webView:(UIWebView *)webView 
shouldStartLoadWithRequest:(NSURLRequest *)request 
navigationType:(UIWebViewNavigationType)navigationType 
{ 
if(_url) 
{   
    if([_url isEqual:[request URL]]) 
    { 
     return YES; 
    }  
    [_url release]; 
} 
    //Here am getting http://LoginSuccess.aspx 
_url = [[request URL] retain]; 
NSString* scheme = [_url scheme];//Here am getting http 

//So here condition fails 

if([scheme isEqualToString:@"acs"]) 
{ 
    // parse the JSON URL parameter into a dictionary 
    _url = [NSURL URLWithString:@"https://converse.accesscontrol.windows"]; 
    NSDictionary* pairs = [self parsePairs:[_url absoluteString]]; 
    if(pairs) 
    { 
     WACloudAccessToken* accessToken; 
     accessToken = [[WACloudAccessToken alloc] initWithDictionary:pairs]; 
     //[WACloudAccessControlClient settoken:accessToken]; 

     [self dismissModalViewControllerAnimated:YES]; 
    }  
    return NO; 
} 

[NSURLConnection connectionWithRequest:request delegate:self]; 

return NO; 

} 

Любые идеи? Заранее спасибо.

ответ

0

I'm не уверен, если я unterstand именно то, что you're пытается сделать, но я полагаю,

[UIWebView stringByEvaluatingJavaScriptFromString:@"yourJavaString"]; 

может помочь. Я использую его для выполнения JavaScript-входа Loginmechanism в одном из моих проектов.

См. Документ Apple here.

Вы должны использовать stringByEvaluatingJavaScriptFromString ПОСЛЕ загрузки WebView.

Смежные вопросы