2012-02-28 51 views
2

如何在UIWebView(包含epub內容)上製作持久性突出顯示,以便每當他到達該頁面時都可以查看它。我得出的結論是,我成功地獲得了可以保存在數據庫中的選定文本的索引。如何使用Coregraphics在UIwebview中突出顯示並保存選定的文本

我需要使用從開始到結束索引的圖形來創建一個透明的矩形排序。但是如何知道文本的座標,以便我可以在其上繪製矩形。

回答

0

爲了在epub中製作永久高亮,請在要突出顯示的字符串中添加一個span,然後重寫該HTML。突出顯示將永久保存

NSString *uuid = [[NSUUID UUID] UUIDString]; 

    NSString *insertSpan = [NSString stringWithFormat:@"var range = window.getSelection().getRangeAt(0);var selectionContents = range.extractContents();alert(selectionContents); var span    = document.createElement(\"span\");span.appendChild(selectionContents);span.setAttribute(\"class\",\"uiWebviewHighlight\");span.style.backgroundColor = \"#99FF00\";span.setAttribute(\"id\", \"%@\");range.insertNode(span);",uuid]; 
    [webView stringByEvaluatingJavaScriptFromString:insertSpan]; 

    NSString *document = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]; 

    NSData *data = [document dataUsingEncoding:NSUTF8StringEncoding]; 

    [data writeToFile:currentChapter.spinePath atomically:YES]; 
+0

謝謝好的,我會嘗試 – Soniya 2014-02-14 06:02:32

+0

@soniya是否能夠使用uipage view controller創建您的epub?如果可以,請分享該想法 – Akhil 2014-02-14 09:15:39

0
function stylizeHighlightedString() 
{ 
    var range    = window.getSelection().getRangeAt(0); 
    var selectionContents = range.extractContents(); 
    var span    = document.createElement("span"); 

    span.appendChild(selectionContents); 
    span.setAttribute("class","uiWebviewHighlight"); 

    span.style.backgroundColor = "red"; 
    span.style.color   = "white"; 

    range.insertNode(span); 
} 
+1

我想永久突出顯示文本。我有sqlite來存儲任何元數據。 – Soniya 2012-07-26 10:46:49

相關問題