2011-04-25 46 views
8

首先,我是Objective-c和cocoa的一個完整的新手。我找到了與此相關的資源,但沒有顯示我想要的資源,而且我似乎無法讓其他人爲我工作。我需要的是一個真正愚蠢的例子,其中包含一個包含按鈕和webview的窗口,其中包含一個帶有javascript函數的HTML頁面,其中包含一個參數(字符串或其他),並通過document.write吐出。 (我知道JavaScript)。在可可webview中調用網頁的Javascript函數

然後當你點擊webview之外的按鈕時,它會調用javascript函數,並且webview會從document.write調用中說出一些東西。如果有人能夠把這樣一個快速的例子放在一起,我會很感激!

謝謝。

回答

16

您可以使用stringByEvaluatingJavaScriptFromString:在您的Web視圖中調用javascript。

[ webView stringByEvaluatingJavaScriptFromString: @"myJavascriptFunction()" ]; 

這是不是完整的例子如您所要求的,但一個完整的應用例子是有些出乎什麼是適合的StackOverflow。

+0

我的問題是磨片我是否指定'webView'?我可以在界面構建器中添加一個webview,但是如何將它與該代碼連接? – penguinrob 2011-04-26 01:11:25

+0

最常用的方法是使用IBOutlets(http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html)。如果這對你來說是新鮮的,我認爲你可以從許多Cocoa教程書籍中獲益,例如Mac OSX的Cocoa Programming。http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619 – 2011-04-26 02:37:21

0

你應該嘗試看看關於這個問題我的答案 - Displaying HTML in iPhone app

,那麼你可以使用JavaScript的只是正常的HTML標準將它們添加到您的Xcode項目的文件。

4

以前的解決方案都不適合我。但是,我發現this method in the Apple Developer documentation,它允許我成功地在我的webView中執行JS代碼。

這裏是XCode中4.6.1爲我工作的一個例子(OS X 10.8.3):

[[webView windowScriptObject] evaluateWebScript:@"document.write('derp')"];

7

如果你只是想調用JavaScript函數,這是應該做的方式它:

WebScriptObject *script = [_webView windowScriptObject]; 
[script callWebScriptMethod:@"jsFunctionWithText" withArguments:@[@"Some text"]]; 

在HTML頁面中,您需要執行以下操作:

<script> 
function jsFunctionWithText(text) 
{ 
    document.write(text); 
} 
</script> 
相關問題