Làm cách nào để vô hiệu hóa kính lúp xuất hiện khi bạn giữ liên lạc trên UIWebView? Tôi không muốn vô hiệu hóa tương tác của người dùng nhưng tôi không muốn webview hiển thị kính thu phóng đó. Bất kỳ ý tưởng?Cách tắt kính lúp trong UIWebview?
Trả lời
Không, kính lúp được liên kết chặt chẽ với lựa chọn. Để vô hiệu hóa nó, bạn sẽ phải vô hiệu hóa lựa chọn hoàn toàn (bạn có thể sử dụng -webkit-user-select: none
để làm điều đó).
Thật không may, điều này không làm việc cho tôi. –
nếu đầu vào/văn bản được lấy nét và làm mờ mà không cần người dùng chạm vào "Xong" trên bàn phím, mẹo này sẽ không hoạt động nữa. (iOS 7) – vilicvane
Vì tôi không biết cách sử dụng -webkit-user-select: none
Tôi đã tìm các cách khác. Và tôi vấp ngã vào số Customize the contextual menu of UIWebView sau đó tôi kết hợp nó với -webkit-user-select: none
.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitUserSelect='none';"];
}
'-webkit-user-select: none' là thuộc tính CSS. Vì vậy, bạn cần phải sử dụng mã mà bạn đã đăng hoặc nếu bạn có quyền truy cập vào nội dung web được hiển thị trong chế độ xem web của mình, bạn sẽ bao gồm nó với CSS của mình. – Ben
Bởi vì các giải pháp chấp nhận không làm việc cho tôi, tôi đã phải tìm kiếm các lựa chọn khác và tôi thấy một.
Lưu ý rằng tôi không biết liệu Apple có chấp thuận kỹ thuật này hay không. Sử dụng nó vì sợ hãi và rủi ro của riêng bạn.
(Chúng ta đã không từ chối; Tôi không nghĩ rằng Apple quan tâm nhiều về bạn rối tung với UIWebView
internals, nhưng được cảnh báo.)
Những gì tôi đã làm được một cách đệ quy đi bộ xuống UIWebView
subviews và liệt kê gestureRecognizers
của họ. Bất cứ khi nào tôi gặp phải một số UILongPressGestureRecognizer
, tôi đặt enabled
thành NO
.
Điều này sẽ loại bỏ hoàn toàn kính lúp và rõ ràng sẽ tắt mọi chức năng báo chí dài mặc định.
Có vẻ như iOS bật lại (hoặc tạo lại) các trình nhận dạng cử chỉ này bất cứ khi nào người dùng bắt đầu chỉnh sửa văn bản.
Vâng, tôi không ngại sử dụng kính lúp trong các trường văn bản để tôi không tắt chúng ngay lập tức.
Thay vào đó, tôi đợi blur
sự kiện trên các yếu tố văn bản của mình và khi nó xảy ra, tôi lại đi lại cây con.
Đơn giản như vậy và hoạt động.
Cái quái gì với downvote? Có điều gì sai với các giải pháp làm tài liệu đã làm việc thành công cho chúng tôi không? –
Điều này nghe có vẻ hợp pháp với tôi. – mark
Bất kỳ mã nào trong plz nhanh? –
Tôi nhận thấy rằng chỉ riêng -webkit-user-select: none;
không thực hiện được thủ thuật. Thay vào đó tôi đã tìm thấy một tài sản khá không có giấy tờ -webkit-touch-callout
Những gì tôi thường làm với các ứng dụng PhoneGap là thế này:
body, body * {
-webkit-user-select: none !important;
user-select: none !important;
-webkit-user-callout: none !important;
-webkit-touch-callout: none !important;
}
input, textarea {
-webkit-user-select: text !important;
user-select: text !important;
-webkit-user-callout: default !important;
-webkit-touch-callout: default !important;
}
Một nơi nào đó nó đã được đề cập rằng -webkit-user-callout
là một phiên bản cũ của -webkit-touch-callback
, tôi đã đặt này chỉ trong vòng trong trường hợp.
Không hoạt động trong ứng dụng Phonegap. Tôi đã thử nó với mỗi và mỗi div –
@ Mo.Ashfaq phiên bản iOS nào bạn thử nghiệm với? –
ios8, trong iphone 5s. Thông tin bổ sung là tôi có một số yếu tố như h2, img trong div của tôi và tôi đã áp dụng giải pháp này cho từng phần tử. –
Đối với dự án Swift Cordova & chúng ta, tôi đã làm:
override init!(webView theWebView: UIWebView!)
{
super.init(webView: theWebView)
removeLoupe()
}
/**
Removes the magnifying glass by adding a long press gesture that overrides the inherent one that spawns
a the loupe by default.
*/
private func removeLoupe()
{
let views = webView?.subviews
if (views == nil || views?.count == 0)
{
return
}
let longPress = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
longPress.minimumPressDuration = 0.045
longPress.allowableMovement = 100.0
for view in views!
{
if (view.isKindOfClass(UIScrollView))
{
let subViews = view.subviews
let browser = subViews[0]
browser.addGestureRecognizer(longPress)
break;
}
}
}
/**
Hack to override loupe appearence in webviews.
*/
func handleLongPress(sender:UILongPressGestureRecognizer)
{
}
Lưu ý rằng đây là lớp CDVPlugin
của tôi (hay đúng hơn là phiên bản tùy chỉnh của tôi của nó).
đảm bảo tệp config.xml của bạn có:
<feature name="CustomCDVPlugin">
<param name="ios-package" value="CustomCDVPlugin" />
<param name="onload" value="true" />
</feature>
này sẽ đảm bảo các phương pháp init()
được gọi.
- 1. Android: Cách tắt kính lúp chọn lọc trong ICS?
- 2. Hiệu ứng kính lúp android
- 3. Vô hiệu hóa kính lúp trong UITextField
- 4. Vô hiệu hóa Kính lúp trong UITextview
- 5. UITextView với cỡ chữ lớn và kính lúp
- 6. Ký tự kính lúp của chỉ số UITableView là gì?
- 7. iOS 6 kính lúp nhấp vào công việc xung quanh
- 8. làm cách nào bạn đặt kính lúp và "tìm kiếm" trong hộp tìm kiếm trong stackoverflow?
- 9. Ngăn việc chỉnh sửa văn bản trong UITextField và ẩn con trỏ/kính/kính lúp khi sử dụng inputView
- 10. Làm thế nào để xây dựng một kính lúp trong WPF C# 4.0?
- 11. Hiệu ứng kính lúp cho lực lượng D3/GraphGL hướng trực quan hóa mạng?
- 12. Cách tạo UIWebView trong suốt
- 13. Làm cách nào để bật cuộn ngang và tắt cuộn dọc trong UIWebview?
- 14. Cách xóa bộ nhớ cache khỏi UIWebview hoặc dealloc UIWebview
- 15. Làm cách nào để buộc UIWebView cập nhật khi màn hình tắt?
- 16. NSString trong UIWebview
- 17. UIWebView stringByEvaluatingJavaScriptFromString trong nền
- 18. EXC_BAD_ACCESS trong UIWebView
- 19. Cách xoay video nhúng UIWebView
- 20. PDF trong UIWebView
- 21. tải chuỗi trong UIWebView
- 22. Cách đặt bán kính góc cho nút trong mã java?
- 23. Scalaz: cách tạo ống kính bản đồ với ống kính giá trị?
- 24. UItextfiled cách tạo bán kính đường biên và giữ bóng viền cũng bán kính
- 25. Bật cookie trong UIWebView (iPhone)
- 26. Gửi biểu mẫu trong UIWebView
- 27. C#: Biểu mẫu kính?
- 28. UIWebView dưới
- 29. Ống kính chức năng
- 30. Kính cắt Delphi
Bạn vẫn muốn chạm vào chế độ xem web? – Satyam