2014-02-13 38 views
0

我在我的iphone應用程序中有UIwebview。UIwebview觸摸並獲取元素和顯示邊框

我想突出顯示元素(Paragrah),當用戶在uiwebView中觸摸。

我正在使用一些java代碼來幫助我獲取元素,但它不工作。我不是java專家,所以需要專家的幫助。

代碼:

NSString *selectedElement = [_webView stringByEvaluatingJavaScriptFromString:@"window.getSelection()"]; 
NSLog (@"selectedElement : %@",selectedElement); 

輸出始終是:

selectedElement : <BODY> 

我的最終目標是觸摸任何地方的UIWebView和元素應該是亮點與邊框或淺色背景顏色。

例如在下面的圖片段落中,當用戶觸摸該段落的任何位置時突出顯示{在Apple之間......你買了一臺Mac。}但是我不想在Long press或者highglight單詞上發生事件。

enter image description here

希望有人得到給我somehint。

+0

我也面臨同樣的問題,因爲你面對早。你能請指導我.. – Senthilkumar

回答

1

幾個月前,我已經完成了相同的任務。對於JavaScript方面,我使用了rangy - 精彩的圖書館,在網頁中有很多選擇。 INITING庫後,你需要的是應用自定義CSS樣式選擇

裝入的WebView所有.js需要調用[webview stringByEvaluatingJavaScriptFromString: @"rangy.init()"];

爲了使所選內容的變化背景下,你需要的CSS樣式我創建了一個與此代碼後:

NSString * selectionCSS = [NSString stringWithFormat:@".uiwebViewSelected%@ { background-color: %@ }", @"redColor", @"#FF0000"]; 

NSString * customCssJS = [NSString stringWithFormat:@" var style = document.createElement('style'); \ 
          style.type = 'text/css'; \ 
          style.innerHTML = '%@'; \ 
          document.getElementsByTagName('head')[0].appendChild(style);", selectionCSS]; 

[webView stringByEvaluatingJavaScriptFromString: customCssJS]; 

那麼對於最後一步 - 創建cssApplier對象

NSString * cssApplier = [NSString stringWithFormat:@"cssApplier%@ = rangy.createCssClassApplier('uiwebViewSelected%@', {normalize: true});", @"redColor", @"redColor"]; 
[webView stringByEvaluatingJavaScriptFromString:cssApplier]; 

完成所有必要的初始化。要應用css選擇電話[webView stringByEvaluatingJavaScriptFromString:@"cssApplierRedColor.toggleSelection(window.getSelection()[0]);"]

+0

謝謝sage444我是新來的JAVA,所以不知道如何在iOS中使用這些!你能指導我從哪裏開始? – Nitya

+0

正如我記得的那樣,rangy有很好的例子,你只需要在uiwebview中玩它,所有的都會變得乾淨。 – sage444

+0

謝謝sage444我還沒有得到它。你可以用示例代碼指導我嗎? – Nitya