如何使用MonoTouch调用javascript函数,反之亦然?

时间:2011-03-23 00:57:11

标签: xamarin.ios

我是新手使用monotouch。

我的问题是我想从monotouch函数调用javascript函数,javascript函数也可以调用monotouch函数。

我相信,有了客观的c,这个问题是可能的,但我需要用monotouch来制作它。

请帮帮我。

任何帮助都要感谢提前

3 个答案:

答案 0 :(得分:27)

要从您的应用程序调用在UIWebView中运行的Javascript代码,请使用EvaluateJavascript方法,如下所示:

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

要回调您的C#代码,唯一的选择是连接到ShouldStartLoad属性,如下所示:

myView.ShouldStartLoad = myHandler;

[...]

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

如果您想轻松访问本地变量,您当然也可以使用匿名方法:

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

在Javascript方面,如果要回调Mono,则将location.href属性设置为“特殊”URL,如下所示:

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

信息将在请求对象上提供:request.Url.AbsoluteString

答案 1 :(得分:7)

我刚刚发布了MonoTouch JsBridge,以简化这一过程。它允许您在本机端和UIWebView之间添加事件侦听器和触发事件。它的灵感来自Titanium。

https://github.com/crdeutsch/MonoTouch-JsBridge

答案 2 :(得分:0)

我没有尝试过monotouch,但它应该与ObjC中的相同:

UIWebView.EvaluateJavascript