2011-03-23 32 views

回答

0

我沒有在MonoTouch的試了一下感謝,但它應該是一樣ObjC:

UIWebView.EvaluateJavascript 
27

要調用的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

+0

謝謝,米格爾!一百萬次,謝謝!這只是回答了我的問題......我的問題在這裏: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

+0

感謝米格爾,你是最棒的! – user672206 2011-03-23 15:59:24

+0

好的,太好了。我試圖重寫一個Ajax調用。我可以用一個函數來替換PageMethods.Method(),就像你說的那樣調用一個特殊的url,但我需要調用來給出響應。我怎樣才能做到這一點? – 2013-10-22 11:16:27

相關問題