如何在ios中声明javascript

ios - How to declare the javascript in ios?

本文关键字:声明 javascript ios      更新时间:2023-09-26

我在下面的代码中调用javascript,它工作得很好,然后我用HTML内容附加javascript,当我在IF条件下检查URL方案失败时。

- (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;
}

任何想法?

检查这个,

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