如何在UIWebView(包含epub內容)上製作持久性突出顯示,以便每當他到達該頁面時都可以查看它。我得出的結論是,我成功地獲得了可以保存在數據庫中的選定文本的索引。如何使用Coregraphics在UIwebview中突出顯示並保存選定的文本
我需要使用從開始到結束索引的圖形來創建一個透明的矩形排序。但是如何知道文本的座標,以便我可以在其上繪製矩形。
如何在UIWebView(包含epub內容)上製作持久性突出顯示,以便每當他到達該頁面時都可以查看它。我得出的結論是,我成功地獲得了可以保存在數據庫中的選定文本的索引。如何使用Coregraphics在UIwebview中突出顯示並保存選定的文本
我需要使用從開始到結束索引的圖形來創建一個透明的矩形排序。但是如何知道文本的座標,以便我可以在其上繪製矩形。
爲了在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];
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);
}
我想永久突出顯示文本。我有sqlite來存儲任何元數據。 – Soniya 2012-07-26 10:46:49
謝謝好的,我會嘗試 – Soniya 2014-02-14 06:02:32
@soniya是否能夠使用uipage view controller創建您的epub?如果可以,請分享該想法 – Akhil 2014-02-14 09:15:39