2013-05-03 28 views
0

我在下面的代碼中調用了javascript,它工作正常,然後我在HTML中添加了那個javascript,當我在IF條件下檢查URL方案失敗時。ios - 如何在iOS中聲明JavaScript?

- (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]; 
    } 
    _url = [[request URL] retain]; 
    NSString* scheme = [_url scheme]; 

    //Here I'm checking the condition 

    if([scheme isEqualToString:@"acs"]) 
    { 
     // parse the JSON URL parameter into a dictionary 
     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

檢查這一項,

[webView stringByEvaluatingJavaScriptFromString:@"window.external =\ 
{\ 
'Notify': function(s) { document.location = 'acs://settoken?token=' + s; },\ 
'notify': function(s) { document.location = 'acs://settoken?token=' + s; }\ 
}"]; 
+0

感謝您的寶貴答覆 – 2013-05-03 07:35:06

+0

歡迎我親愛的朋友。 – Balu 2013-05-03 07:35:38

+0

我聲明瞭這樣的,但它是越來越超出範圍的NSString * jsString = [webView的stringByEvaluatingJavaScriptFromString:@「的window.external = \ \t \t {\ \t \t '通知':功能(S){document.location =' ACS:// settoken標記=」 + S;},\ \t \t '通知?':功能(一個或多個){document.location = 'ACS:// settoken標記=' + S;} \ \t \t} 「]; \t \t \t \t 內容\t = [jsString stringByAppendingString:內容]; – 2013-05-03 07:35:44