IBM Worklight 6.0 - 如何禁用MainView / WebView的复制/粘贴选项?

时间:2013-11-18 00:37:00

标签: ios ibm-mobilefirst

我想禁用文本区域的复制/剪切菜单以防止从应用程序导出任何数据。我将以下代码放在apps/<AppName>/iphone/native/Classes/CDVMainViewController.m文件中,但它不起作用。当菜单出现时,似乎会调用canPerformAction,但剪切/复制操作不会传递给此代码。

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
  BOOL can = [super canPerformAction:action withSender:sender];
  if (action == @selector(cut:) || action == @selector(copy:))
  {
    can = NO;
  }
  NSLog(@"%@ for action:%@ from sender:%@.",
    can ? @"YES" : @"NO", NSStringFromSelector(action), sender);
  return can;
}

如何禁用这些选项?

1 个答案:

答案 0 :(得分:0)

正如安东在问题的评论区域中所指出的,请看一下这个问题,寻找可能的解决方案:Disabling user selection in UIWebView

以下是一对夫妇:

通过CSS:

  textarea {
      -webkit-touch-callout: none;
      -webkit-user-select: none; /* Disable selection/copy in UIWebView */
  }

通过本机代码(虽然我认为这可能不是特定于textarea,而是整个应用程序屏幕;但你可以修改它):

 - (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];
    }