2013-10-23 31 views
1

我正在開發一個類似Mogok的iOS自定義瀏覽器。當用戶點擊UIWebView上的任何文本輸入時,我需要更改默認鍵盤。我試過thisthis,沒有運氣。我有一個按鈕的解決方法,但這不適用於textinput和textarea。iOS UIWebView捕獲用戶點擊文本輸入

我的js代碼是在此:

NSString *jsCode = @"function setClickEvent() {for (i = 0; i < document.all.length; i++) { var obj = document.all[i]; obj.addEventListener('click',function(){window.location = "fake://myApp/something_happened:param1:param2:param3";})}} setClickEvent();"; 
[self._webView stringByEvaluatingJavaScriptFromString:jsCode]; 

是否有任何其他的方式來實現這一目標?我的唯一需求是在用戶點擊textinput或textarea時獲得通知。

非常感謝提前!

問候 蘭詹

+0

您可以在其他問題中看到我的答案:http://stackoverflow.com/questions/19961369/how-the-default-keyboard-comes-up-when-user-taps-in-uiwebview/20037193 #20037193 – dcorbatta

回答

1

我建議你添加這樣的事情,就看你的JavaScript代碼運行正常:

NSString *jsCode = @" 
"try{" 
" for (i = 0; i < document.all.length; i++) {" 
"  var obj = document.all[i];" 
"  obj.addEventListener('click',function(){" 
"   window.location = \"fake://myApp/something_happened:param1:param2:param3\";" 
"  });" 
" }" 
"}" 
"catch (exc){" 
" return \"caught exception: \" + exc.toString();" 
"}"; 
NSString result = [self._webView stringByEvaluatingJavaScriptFromString:jsCode]; 
NSLog(@"%@", result); 

您可以添加在你的return(如需要的任何記錄:有一個字符串並繼續附加到它)。

順便說一句,有一個爲JavaScript的一個getElementByTagName方法,可用於獲取某種類型的唯一元素(在你的情況<textarea><input> - 你還需要檢查屬性/類型,以確保它是一個textfield)

+0

謝謝。我今天會嘗試這個,並分享輸出。似乎令我信服:-) – TechBee