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

use*_*206 15 xamarin.ios

我是新手使用monotouch.

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

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

请帮帮我.

任何帮助都要感谢提前

mig*_*aza 27

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

myView.EvaluateJavaScript ("a = 1;");
Run Code Online (Sandbox Code Playgroud)

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

myView.ShouldStartLoad = myHandler;

[...]

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

当然,如果要轻松访问局部变量,也可以使用匿名方法:

myView.ShouldStartLoad = (webView, request, navType) => {
     // Determine here what to do
}
Run Code Online (Sandbox Code Playgroud)

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

// Javascript code:
location.href = "myapp://action?par1=abc&par2=def"
Run Code Online (Sandbox Code Playgroud)

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


cde*_*sch 7

我刚刚发布MonoTouch JsBridge以使其更容易.它允许您在本机端和UIWebView之间添加事件侦听器和触发事件.它的灵感来自Titanium.

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


Dav*_*rio 0

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

UIWebView.EvaluateJavascript
Run Code Online (Sandbox Code Playgroud)