如何在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