回答編集履歴

2

別の書き方を追記

2018/07/23 23:02

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -63,3 +63,39 @@
63
63
  mWebView.AddGestureRecognizer(longPress);
64
64
 
65
65
  ```
66
+
67
+
68
+
69
+ `WKWebview`の構造に依存してしまいますが、ジェスチャーを削除するという書き方でもいいかもしれません。
70
+
71
+ また、テキストの選択やハイライトを残したければ、`_UITextSelectionForceGesture`、`_UIWebHighlightLongPressGestureRecognizer`を取り除かないでおくといいようです。
72
+
73
+
74
+
75
+ ```C#
76
+
77
+ foreach (var view in mWebView.ScrollView.Subviews)
78
+
79
+ {
80
+
81
+ if (view.GestureRecognizers?.Length > 0)
82
+
83
+ {
84
+
85
+ var recognizers = view.GestureRecognizers.Where(recognizer => recognizer is UILongPressGestureRecognizer && recognizer.Class.Name != "_UITextSelectionForceGesture" && recognizer.Class.Name != "_UIWebHighlightLongPressGestureRecognizer");
86
+
87
+
88
+
89
+ foreach (var recognizer in recognizers)
90
+
91
+ {
92
+
93
+ view.RemoveGestureRecognizer(recognizer);
94
+
95
+ }
96
+
97
+ }
98
+
99
+ }
100
+
101
+ ```

1

別の方法を追記

2018/07/23 23:02

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -29,3 +29,37 @@
29
29
 
30
30
 
31
31
  異なるドメインなら、サーバー側でどうにかしない限り、ちょっと難しいかもしれません。
32
+
33
+
34
+
35
+ ---
36
+
37
+
38
+
39
+ ちょっと無理やり感がありますが、ジェスチャーを無効にすることで、iframeでもロングタップ無効にすることができそうです。
40
+
41
+
42
+
43
+ ```C#
44
+
45
+ var longPress = new UILongPressGestureRecognizer();
46
+
47
+ longPress.ShouldRecognizeSimultaneously = (recognizer, other) =>
48
+
49
+ {
50
+
51
+ if (other is UILongPressGestureRecognizer)
52
+
53
+ {
54
+
55
+ other.State = UIGestureRecognizerState.Failed;
56
+
57
+ }
58
+
59
+ return true;
60
+
61
+ };
62
+
63
+ mWebView.AddGestureRecognizer(longPress);
64
+
65
+ ```