ios - 如何在NSURLConnection中调用ScriptNotify?

时间:2013-04-26 12:13:03

标签: ios objective-c

我在以下代码中收到错误,例如'ScriptNotify'未声明的

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    if(_data)
    {
        [_data release];
        _data = nil;
    }
}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    if(!_data)

    {
        _data = [data mutableCopy];
    }
    else
    {
        [_data appendData:data];
    }
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    if(_data)
    {
        NSString* content = [[NSString alloc] initWithData:_data
                                                  encoding:NSUTF8StringEncoding];

        [_data release];
        _data = nil;

        // prepend the HTML with our custom JavaScript
        content = [ScriptNotify stringByAppendingString:content];

        [_webView loadHTMLString:content baseURL:_url];
    }
}

如何解决这个问题?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

啊,一盏灯已经亮了。

这个答案只有在阅读了Udhaya所指的文章后才有意义。

在文章中,Steve Saxon将ScriptNotify定义为“我之前描述的javascript”,Objective C并不那么聪明,所以你必须告诉它这是什么。类似的东西: -

NSString* ScriptNotify = @"
    <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>
";

下次要做的事情: - 告诉我们这是编译器错误。 更好地学习语言,这真的非常基本。 在Steve Saxon的页面上发表评论,这是他的错误。