禁用WebView上文本字段中的复制和粘贴菜单.我的应用程序基于IOS Phonegap.

use*_*299 3 webview ios long-press cordova

我的应用程序是ios phonegap应用程序.我想从Web视图的文本字段中禁用复制和粘贴菜单.长按和双击,复制粘贴菜单显示.我尝试使用UIGestureRecognizer类禁用长按和双击:

- (void)viewDidLoad{
UILongPressGestureRecognizer* longPressGesture = [[UILongPressGestureRecognizer alloc]     initWithTarget:self action:@selector(gestureHandler:)];
[longPressGesture setMinimumPressDuration:0.2];
longPressGesture.delegate = self;
[self.webView addGestureRecognizer:longPressGesture];
}

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer    shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer   *)otherGestureRecognizer
{
    if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
    return  NO;
    }
    else if([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]){
    return  NO;
    }
    else
        return YES;
}
Run Code Online (Sandbox Code Playgroud)

但我无法禁用双击.任何人具有相同的查询?帮帮我...

Sat*_*ran 5

那么你必须为UIWebView编写一个覆盖canPerformAction方法的类别,

@implementation UIWebView (DisableCopyPaste)

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    if (menuController) {
        [UIMenuController sharedMenuController].menuVisible = NO;
    }
    return NO;
}

@end
Run Code Online (Sandbox Code Playgroud)

在xcode项目文件夹中找到的.pch文件中导入此类别,设置断点以测试长按事件是否触发此方法.

FYI这种方法可称为很多次,不要担心,这是对的可供用户长按特定的UI组件选项列表.

要创建类别,请按照以下步骤操作.

单击Xco​​de中项目解决方案浏览器底部的添加按钮.

在此输入图像描述

下一步在选项中选择Objective C Category.

在此输入图像描述

下一步选择UIWebView或在文本框的类别中键入UIWebView,并为该类别指定任何名称 在此输入图像描述

单击"下一步"并将类别保存到项目位置,然后复制粘贴上述功能.瞧!

要在HTML中放置的文本输入中禁用复制粘贴或其他选项,请参阅此处.