禁用 WebView 放大鏡及拷貝粘貼彈出框

當你的App中有 WebView 或者有 Text 文本的時候,毫無疑問,系統默認地會在你進行長按的時候,彈出一個框,來讓你拷貝、粘貼、剪切文本等,亦或是彈出一個放大鏡。

而當你進行開發(fā)的時候,往往很明確的知道自己的 WebView 希望展示的是什么東西,這個時候,你可能會希望自定義長按手勢(LongPressGesture)的功能,而不是自帶的彈出框。

然而當你做了一系列工作自定義了長按手勢之后,卻發(fā)現它的優(yōu)先級是低于系統默認的彈出框的。

ios低版本的可以用下面的方法

[_webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';" ];

[_webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';" ];

在Xcode7IOS9上面這個方法就不適用了。

最后發(fā)現長按手勢的默認屬性中,有一個 minimumPressDuration 默認值是 0.5,也就是說,在長按了0.5秒時,我們自定義的長按手勢執(zhí)行方法和系統的沖突了,于是解決方法顯而易見:把自定義長按手勢的反應時間縮短到0.5s以內,這樣就可以在系統方法執(zhí)行之前完成操作,而事實上,你甚至可以簡單粗暴地把它改為0.1s,依然不會和點按的 Tap 手勢有沖突。

self.longPressPan.minimumPressDuration = 0.1

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容