iOS webview加载html自定义选项框选词
项目要求:webview加载html网址,内容为英文文本,需要获取文本上的单词
这个是最终效果图:

思路是先实现自定义的选项框(不带系统选项)再获取到滑选的单词;
实现的步骤:
首先是替换掉系统长按出现的复制选项框,因为长按会触发系统自带的选择复制选项(另外iOS系统在第一次长按选词时不会弹出选项框,这个注意一下就好),这里是只显示自己需要的选项(项目中是"标记"和"字典");
在视图控制器中添加UIMenuController自定义项
UIMenuItem *flag1 = [[UIMenuItem alloc] initWithTitle:@"标记" action:@selector(biaoji:)];
UIMenuItem *flag2 = [[UIMenuItem alloc] initWithTitle:@"字典" action:@selector(zidian:)];
UIMenuController *menu = [UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObjects:flag1,flag2, nil]];
创建一个继承自webview的CustomView,作为控制器中webview的父类,初始化CustomView,添加自定义选项方法:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
    if(action == @selector(biaoji:) || action == @selector(zidian:)){
        return YES;
    }
//   return [super canPerformAction:action withSender:sender]//加上这句会返回系统的选项
    return NO;
}
注:如果返回不是NO,而是return [super canPerformAction:action withSender:sender]这个的话,选项框会带上系统的选项而把"标记"和"字典"排在后面
再在CustomView中实现UIMenuController的两个选项方法:
-(void)biaoji:(UILongPressGestureRecognizer *)gesture
{
NSLog(@"222menuView方法-标记重难点"); NSString* selection = [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
NSLog(@"打印选中的词=%@",selection);
}
-(void)zidian:(UILongPressGestureRecognizer *)gesture
{
NSLog(@"222menuView方法-查字典");
}
[self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]这个是在点击自定义选项后获取到已滑动选的词,这样就可以了,比较简单。
参考网址:
http://jingyan.baidu.com/article/ac6a9a5e7d3e282b653eac1b.html(百度知道)
www.itstrike.cn/Question/b0d4ca24-d5bd-4d12-a3be-cdeae9eba5b9.html(程序网)
iOS webview加载html自定义选项框选词的更多相关文章
- iOS WebView 加载本地资源(图片,文件等)
		
https://www.cnblogs.com/dhui69/p/5596917.html iOS WebView 加载本地资源(图片,文件等) NSString *path = [[NSBundle ...
 - iOS webview加载时序和缓存问题总结
		
iOS webView的加载时序 UIWebView加载顺序: - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSU ...
 - ios webview 加载含有中文的URL网页显示白屏
		
1. ios中的webview加载的URL不可以含有中文,解决办法说将中文字符转码, 如下: - (NSString *)URLEncodeString { NSCharacterSet *set = ...
 - 【iOS】WebView加载HTML图片大小自适应与文章自动换行
		
在很多App中都会使用到webview,尤其是在加载新闻内容等文章形式的数据时.因为图文混编以及不同字体格式的显示,在iOS进行编辑 和显示都是一大问题(当然,iOS中也可以用CoreText进行绘制 ...
 - Android:webView加载h5网页视频,播放不了,以及横屏全屏的问题和实现自定义加载进度条的效果
		
1.webView加载h5网页视频,播放不了,android3.0之后要在menifest添加硬件加速的属性 android:hardwareAccelerated="true". ...
 - iOS中webView加载URL需要处理特殊字符
		
今天在项目中遇到webView加载URL时,因为URL中有特殊字符,导致页面无法加载,而且在- (BOOL)webView:(UIWebView )webView shouldStartLoadWit ...
 - iOS使用webView加载HTML网页链接简单展示
		
//网页视图 _webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 64, mWidth, mHeight-64)]; _webView.d ...
 - WebView加载HTML图片大小自适应与文章自动换行
		
http://www.brighttj.com/ios/ios-webview-load-html-image-adaptive.html 在很多App中都会使用到webview,尤其是在加载新闻内容 ...
 - Android WebView加载本地html并实现Java与JS交互
		
最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是 ...
 
随机推荐
- [iOS微博项目 - 3.2] - 发送微博
			
github: https://github.com/hellovoidworld/HVWWeibo A.使用微博API发送微博 1.需求 学习发送微博API 发送文字微博 发送带有图片的微博 ...
 - does not support ASP.NET compatibility 错误
			
The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibi ...
 - Codeforces 719 E. Sasha and Array (线段树+矩阵运算)
			
题目链接:http://codeforces.com/contest/719/problem/E 题意:操作1将[l, r] + x; 操作2求f[l] + ... + f[r]; 题解:注意矩阵可以 ...
 - aix-裸设备文件大小查看
			
1.使用lsvg 查看有哪些vg 2.使用lsvg myvg VOLUME GROUP: myvg VG IDENTIFIER: 00f7563100004c000000013e5f8a53fa VG ...
 - hdu1232 畅通工程
			
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
 - js页面文字选中后分享到新浪微博实现
			
demo您可以狠狠地点击这里:js文字选中分享到新浪微博demo 方法与代码 选中即分享的功能看上去比较高级,其实实现是相当简单的.其中的会让人头大,一般人也不感兴趣的原理这里就直接跳过.这个js文字 ...
 - WSB备份到远程共享文件夹的限制
			
WSB备份存储类型: 远程共享文件夹: 可以将一次性(临时)备份和计划备份存储在远程共享文件夹上.(将计划备份存储在远程共享文件夹上的功能是 Windows Server 2008 R2 的新增功能. ...
 - 微价值:专訪《甜心爱消除》个人开发人员Lee,日入千元!
			
[导语]我们希望能够对一些个人开发人员进行专訪,这样大家更能显得接地气,看看人家做什么,怎么坚持.<甜心爱消除>作者Lee是三群的兄弟,也关注微价值.微价值的文章还是能够的,得到一些业内大 ...
 - 使用RemObjects Pascal Script (转)
			
http://www.cnblogs.com/MaxWoods/p/3304954.html 摘自RemObjects Wiki 本文提供RemObjects Pascal Script的整体概要并演 ...
 - Java组各任务工作流程
			
1.周枫 A.提供基于SQL SERVER的数据库基本表结构创建脚本,基础数据脚本,按学科(产品)的数据脚本. 2.吴缤 A.提供给周茉的安装包用的项目文件,共三个digital,xylinkWeb和 ...