24

How would I expose an Objective-C method within JavaScript when using the iPhone SDK when using the UIWebView?

Any help would be appreciated!

3 Answers 3

22

The best way to do this would be through a custom link, and then use the UIWebView delegate method -webView:shouldStartLoadWithRequest:navigationType: to trap requests. When you see a request come through with your link in it, you know your action has been triggered.

Sign up to request clarification or add additional context in comments.

2 Comments

I do not believe this will work, when I was testing something similar the resource policy delegates were only called in response to user initiated actions, script initiates actions were silently dropped. it is possible this has changed since I checked back in June.
I just tried a very simple page who's onload function set the page's location to www.google.com, and the request was passed to the delegate.
3

There is an example application in the QuickConnectiPhone framework that shows you how to do this.

QuickConnectiPhone also gives you a JavaScript function called 'makeCall'. You pass it a command and an array of parameters and it will pass them to the Objective-C side of your app for handling. You can then make your function call.

You can find it here on Sourceforge.

Comments

0

To see an example of this check out the PhoneGap source code from Github:

http://github.com/sintaxi/phonegap/tree/master/iphone/Classes/GlassAppDelegate.m

1 Comment

Link nolonger valid and needs updating

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.