我是新手使用monotouch。
我的问题是我想从monotouch函数调用javascript函数,javascript函数也可以调用monotouch函数。
我相信,有了客观的c,这个问题是可能的,但我需要用monotouch来制作它。
请帮帮我。
任何帮助都要感谢提前
答案 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。
答案 2 :(得分:0)
我没有尝试过monotouch,但它应该与ObjC中的相同:
UIWebView.EvaluateJavascript