我有一个应用程序,我把内容加载到UIWebView,然后展示这个.我不能完全禁用用户交互,因为我希望用户能够单击链接.我只需要禁用用户 Select .我在Internet中找到了您可以使用的位置:

document.body.style.webkitUserSelect='none';

我试着把这个当作

[self.contentView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitUserSelect='none';"]; 

webViewDidFinishLoad:个月内

然而,它不起作用.我仍然能够在WebView中 Select 和复制文本.

你知道哪里出了问题吗?

更新:这似乎只发生在iOS 4.3上

推荐答案

以下是几种禁用 Select 的方法:

将以下内容添加到您的移动Web文档

<style type="text/css">
* {
    -webkit-touch-callout: none;
    -webkit-user-select: none; /* Disable selection/copy in UIWebView */
}
</style>

以编程方式加载以下Javascript代码:

NSString * jsCallBack = @"window.getSelection().removeAllRanges();";    
[webView stringByEvaluatingJavaScriptFromString:jsCallBack];

禁用复制/粘贴用户菜单:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{    
    if (action == @selector(copy:) ||
        action == @selector(paste:)||
        action == @selector(cut:)) 
    {
        return _copyCutAndPasteEnabled;
    }
    return [super canPerformAction:action withSender:sender];
}

Ios相关问答推荐

连接一些字符串,每个字符串都应该可以在swiftUI中单独点击

滚动时突出显示工具栏项目

使用AVCaptureEventInteraction捕获音量按键快门

如何在expo-react native中从ios平台中排除包

BezierPath 中绘制图像形状轮廓的算法(Canny 边缘检测器)

使用 Objective-C 创建 iOS 框架

NSError 错误领域: "CBATTErrorDomain" 代码: 128 0x0000000282b111a0

如何在Swift/Combine中从timer.publish属性传递两个参数到任意方法

UIView 倒置旋转时的zoom 问题

在 SwiftUI 中重构提取到子视图的 GeometryReader 代码

SwiftUI 解除 .alert 弹出 NavigationView

错误:无法根据成员environmentObject推断上下文基础

来自 c++ 的runtime_error未在 iOS 中捕获

DateFormatter 使用 TimeZone 和 Locale 的特定组合返回 nil

有什么方法可以预填充核心数据?

Swift tableView 分页

interfaceOrientation在 iOS 8 中已弃用,如何更改此方法 Objective C

在 iOS 7 上更改标签栏色调 colored颜色

判断密钥是否存在于 NSDictionary 中

使用 swift 3 在 UIView 上添加阴影