2013-04-26 15 views
-1

我在下面的代碼就像得到一個錯誤「ScriptNotify」未申報ios - 如何在NSURLConnection中調用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]; 
    } 
} 

如何解決此問題?任何想法?

+0

什麼是ScriptNotify? – Balu 2013-04-26 12:16:02

+0

你必須要更具體。什麼是「ScriptNotify」?它不在你提供的代碼中。你有什麼嘗試?哪一行拋出異常? – colincameron 2013-04-26 12:17:17

+0

請通過此鏈接http://www.stevesaxon.me/posts/2011/window-external-notify-in-ios-uiwebview/ – 2013-04-26 12:20:13

回答

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的頁面發表評論,而這是他的錯誤。

相關問題