开发者

Call Javascript function of webpage in cocoa webview

开发者 https://www.devze.com 2023-03-01 03:46 出处:网络
First, I\'m a complete newbie at objective-c and cocoa. I\'ve found resources related to this, but none showing what I want, and I can\'t seem to get the others to work for me. What I need is a really

First, I'm a complete newbie at objective-c and cocoa. I've found resources related to this, but none showing what I want, and I can't seem to get the others to work for me. What I need is a really dumbed-down example with a window containing a button and a webview that has an HTML page with a javascript function that takes one parameter (a string or something), and spits it out via document.write. (I know javascript).

Then when you click the button outside of the webview, it will call the javascript function, and the webview will say something, from the document.write call. If some开发者_JAVA百科one could perhaps put together a quick example like this, I'd really appreciate it!

Thanks.


You can use stringByEvaluatingJavaScriptFromString: to call javascript in your web view.

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

This is not as complete an example as you have asked for but a complete application example is somewhat beyond what is appropriate for StackOverflow.


If you just want to call a Javascript function, this is the way to do it:

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

In your HTML page you'll need the following:

<script>
function jsFunctionWithText(text)
{
    document.write(text);
}
</script>


None of the previous solutions worked for me. However, I found this method in the Apple Developer documentation which did allow me to execute JS code in my webView successfully.

Here is an example that worked for me in XCode 4.6.1 (OS X 10.8.3):

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


To get the WebView working see this awesome tutorial by Lost Decade Games:

How to embed HTML5 into a native Mac OSX app.


You should try to see my answer on this question - Displaying HTML in iPhone app

then you can use javascript as just normal html standard by add them to your XCode project's file.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号