Alex Rivera | Logout

How I can call a javascript function with MonoTouch and vice versa?

Asked 2011-03-23T00:57:10.677
15

i'm new using monotouch.

My problem is i want call a javascript function from a monotouch function and javascript function could call a monotouch function too.

I believe that with objective c this problem is possible, but i need making it with monotouch.

Help me please.

any help is thank for advance

Edit
Report

1 Answer

27

To invoke Javascript code running in the UIWebView from your application, use the EvaluateJavascript method, like this:

myView.EvaluateJavaScript ("a = 1;");

To call back into your C# code, the only option is to hook up to the ShouldStartLoad property like this:

myView.ShouldStartLoad = myHandler;

[...]

bool myHandler (UIWebView webView, NSUrlRequest request, UIWebViewNavigationType navType)
{
    // Determine what to do here based on the @request and @navType
} 

You can of course, also use anonymous methods if you want to access local variables easily:

myView.ShouldStartLoad = (webView, request, navType) => {
     // Determine here what to do
}

In the Javascript side, if you want to call back to Mono, you then set the location.href property to a "special" url, like this:

// Javascript code:
location.href = "myapp://action?par1=abc&par2=def"

The information will be available on the request object: request.Url.AbsoluteString

answered 2011-03-23T14:49:02.733

Your Answer