2012-08-12 103 views
3

我從遷移的android我的應用程序的iOS和下面的行,編譯器返回我在iOS上的錯誤,的UIWebView調用javascript函數的語法

webviewA.loadUrl("javascript:setVars(\"" + var1 + "\",\"" + var2 + "\")"); //正確Android上

執行適用於iOS我想,

[webViewA stringByEvaluatingJavaScriptFromString:@"javascript:setVars(\"" + var1 + "\",\"" + var2 + "\")"]; 

這將是iOS的正確語法?謝謝。

+0

誰想要在UIWebView中的Javascript運行的話題優雅的演示人,請參考到:http://creiapp.blogspot.hk/2013/04/uiwebview-javascript.html – 2013-04-18 05:43:08

回答

9

根據this answer on another similar question,您需要實施UIWebView委託方法webViewDidFinishLoad:,並在那裏執行[myWebView stringByEvaluatingJavaScriptFromString:@"myJavaScriptCode()"]

爲了實現此目的,您需要在UIWebView實例上設置委託並實現上述的委託方法,以便在加載頁面後執行JavaScript。

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)scriptcan be found here的文檔。

現在針對您的問題的其他部分(謝謝澄清!)..在Objective-C中連接字符串時,可以使用NSString類方法stringWithFormat:

例如,通過兩項Objective-C的值,以一個JavaScript字符串,你可以做這樣的事情:

// Substitute your Objective-C values into the string 
NSString *javaScript = [NSString stringWithFormat:@"setVars('%@', '%@')", var1, var2, nil]; 

// Make the UIWebView method call 
NSString *response = [webViewA stringByEvaluatingJavaScriptFromString:javaScript]; 
+0

我要求腳本!我正在使用單個var進行javascript調用,但如何解決這個問題?謝謝 – Jaume 2012-08-12 11:31:40

+0

哎呀,你的問題有點含糊,但謝謝澄清。我已經更新了我的答案,詳情:) – jstr 2012-08-12 11:41:08

+0

我非常感謝你的幫助。謝謝 – Jaume 2012-08-12 12:07:27