Invocar código JavaScript que se ejecuta en el UIWebView de su aplicación, utilice el método EvaluateJavascript, así:
myView.EvaluateJavaScript ("a = 1;");
para llamar de nuevo en su código C#, la única opción es conectar a la propiedad ShouldStartLoad como esto:
myView.ShouldStartLoad = myHandler;
[...]
bool myHandler (UIWebView webView, NSUrlRequest request, UIWebViewNavigationType navType)
{
// Determine what to do here based on the @request and @navType
}
Puede, por supuesto, también utilizar métodos anónimos si quiere acceder a las variables locales fácilmente:
myView.ShouldStartLoad = (webView, request, navType) => {
// Determine here what to do
}
En el lado Javascript, si desea volver a llamar a Mono, se establece entonces la location.href propiedad a una URL "especial", como este:
// Javascript code:
location.href = "myapp://action?par1=abc&par2=def"
la información estará disponible en el objeto de la solicitud: request.Url.AbsoluteString
Gracias, Miguel !! Un millón de veces, ¡gracias! Esto también acaba de responder a mi pregunta ... mi pregunta está aquí: http://stackoverflow.com/questions/5404152/shouldstartload-of-custom-uiwebviewdelegate-not-being-called-when-uiwebview-reque. Estoy ocupado creando un mecanismo de enlace para la comunicación bidireccional entre javascript y monotouch y he estado luchando con la implementación del delegado ShouldStartLoad. Esto me dio la información que necesitaba para que funcione. :) :) :) – BruceHill
gracias Miguel, eres el mejor !!!! – user672206
Ok, genial. Estoy tratando de anular una llamada ajax. Puedo reemplazar el método PageMethods.Method() con una función que llame a una URL especial como usted dijo, pero necesito la llamada para dar una respuesta. ¿Cómo puedo hacer eso? –