3

ほぼ、コピー/貼り付けを無効にするためにあらゆることを試みましUIWebViewたが、何も機能しませんでした。

UIWebView次のように文字列(文字列の配列)から自分を読み込んでいます:

[webView loadHTMLString:
[NSString stringWithFormat:@"%@<p class=\"paragraph\"  style=\"float: right\"  >%@</p>",css,[[array objectAtIndex:0] valueForKey:@"content"]]   baseURL:nil ];

私はこれを試しました:

-(void)webViewDidFinishLoad:(UIWebView *)webView1{
[webView1 stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitUserSelect='none';"];
}

この:

  NSString *css =
@"<head><style><body> *{-webkit-touch-callout: none; -webkit-user-select: none;}</style> </head>  </body> ";

しかし、特にiOS4.2では何も機能しませんでした

4

3 に答える 3

7

それはもっと複雑なようです...あなたがしなければならないすべてを詳述しているSOのこのスレッドを見てください...

要約:次のことを行う必要があります。

CSSを変更します(あなたがするように):

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

いくつかのjavascriptを追加します:

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

コピー/貼り付けメニューを無効にします。

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

canPerformActionUIWebViewで定義する必要があります。そのための2つのオプションがあります。

  1. UIWebViewのカテゴリを定義します(すべてのUIWebViewからこの動作を削除しても問題がない場合)。

  2. から独自のWebビュークラスを派生させUIWebView、そこでそのメソッドをオーバーライドします。

于 2012-07-02T09:14:29.207 に答える
7
-webkit-user-select: none; /* Disable selection/Copy of UIWebView */

また、モバイルSafariでフォームを無効にします。

于 2012-10-16T00:41:52.647 に答える
0

これを使って。

<style type="text/css">
*:not(input):not(textarea) {
-webkit-user-select: none; /* disable selection/Copy of UIWebView */
-webkit-touch-callout: none; /* disable the IOS popup when long-press on a link */
}       
</style>
 If you want Disable only anchor button tag use this.

a {-webkit-user-select: none; /* disable selection/Copy of UIWebView */
   -webkit-touch-callout: none; /* disable the IOS popup when long-press on a link */
 }
于 2014-08-21T09:54:29.697 に答える