我是新使用monotouch。我如何使用MonoTouch調用JavaScript函數,反之亦然?
我的問題是我想從monotouch函數調用一個javascript函數,javascript函數也可以調用monotouch函數。
我相信,與目標c這個問題是可能的,但我需要使它montouch。
請幫助我。
任何幫助是提前
我是新使用monotouch。我如何使用MonoTouch調用JavaScript函數,反之亦然?
我的問題是我想從monotouch函數調用一個javascript函數,javascript函數也可以調用monotouch函數。
我相信,與目標c這個問題是可能的,但我需要使它montouch。
請幫助我。
任何幫助是提前
我沒有在MonoTouch的試了一下感謝,但它應該是一樣ObjC:
UIWebView.EvaluateJavascript
要調用的JavaScript代碼運行的UIWebView您應用程序,使用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方面,如果你想打電話回單,你再設置location.href屬性設置爲一個「特殊」的網址,例如:
// Javascript code:
location.href = "myapp://action?par1=abc&par2=def"
的信息將請求對象:request.Url.AbsoluteString
我剛剛發佈了MonoTouch JsBridge,使其更容易。它允許您在本機端和UIWebView之間添加事件偵聽器和觸發事件。它受到了Titanium的啓發。
謝謝,米格爾!一百萬次,謝謝!這只是回答了我的問題......我的問題在這裏:http://stackoverflow.com/questions/5404152/shouldstartload-of-custom-uiwebviewdelegate-not-being-called-when-uiwebview-reque。我正忙於構建javascript和monotouch之間雙向通信的橋接機制,並一直在努力實現ShouldStartLoad委託。這給了我需要的信息讓它工作。 :) :) :) – BruceHill 2011-03-23 15:15:39
感謝米格爾,你是最棒的! – user672206 2011-03-23 15:59:24
好的,太好了。我試圖重寫一個Ajax調用。我可以用一個函數來替換PageMethods.Method(),就像你說的那樣調用一個特殊的url,但我需要調用來給出響應。我怎樣才能做到這一點? – 2013-10-22 11:16:27