2016-09-06 20 views
6

Trong các ứng dụng di động trước đây mà tôi đã phát triển, tôi thấy rằng sự kiện click không hoạt động như mong đợi ở tất cả các thiết bị (ví dụ: trong trò chơi mà người dùng phải chạm/nhấp nhanh trên màn hình , thay vì kích hoạt sự kiện click, nhấp đúp đã được kích hoạt) và sử dụng touchstart cho kết quả tốt hơn cho những gì tôi muốn.Các hoạt động liên lạc không được chấp nhận trên các ứng dụng di động

Kể từ đó, tôi bắt đầu nghe sự kiện touchstart thay vì click; nhưng thử nghiệm trên Chrome, tôi nhận được tin nhắn cảnh báo sau đây trong giao diện điều khiển JS:

hoạt động đòi hỏi tương tác người dùng rõ ràng về sự kiện touchstart Performing bị phản đối và sẽ được loại bỏ trong M54, khoảng tháng mười năm 2016. Xem https://www.chromestatus.com/features/5649871251963904 để biết thêm chi tiết .

tôi đến thăm trang liên kết (và các liên kết bên trong nó) và có vẻ như rằng hành vi mới này là để tránh những hành động không mong muốn nào đó, và đặc biệt là để tránh bên thứ ba iframes hoặc quảng cáo (ứng dụng của tôi có không có) từ mở cửa sổ bật lên. Tôi đã thử thay đổi sự kiện thành touchend (là một trong các liên kết được nêu "Sự kiện chạm sẽ tiếp tục hoạt động như trước") nhưng có thông báo cảnh báo tương tự.

Và câu hỏi của tôi:

  • Liệu đó có phải chỉ ảnh hưởng đến Chrome, hoặc nó sẽ ảnh hưởng đến các ứng dụng web của tôi (với Cordova/PhoneGap) dành cho Android và iOS?
  • Tôi nên sử dụng sự kiện nào để thay thế touchstart và tránh các vấn đề tôi gặp phải trong quá khứ? Tôi có thể quay lại click, nhưng việc nhấp/nhấn nhanh sẽ vẫn là một vấn đề.

Trả lời

4

Khi tạo ứng dụng Cordova, bạn nhắm mục tiêu các phiên bản hệ điều hành khác nhau, Android 5 trở lên có tự động cập nhật chế độ xem web dựa trên Chromium, do đó sự cố có thể ảnh hưởng đến ứng dụng của bạn.

Nhưng kể từ Chrome 32, khi sử dụng chế độ xem này <meta name="viewport" content="width=device-width">, độ trễ nhấp sẽ biến mất (xem this article), vì vậy bạn có thể sử dụng an toàn sự kiện click. Các bản xem trước web mới nhất trên Android 5 và 6 dựa trên Chromium 52.

Bạn cũng có thể sử dụng thư viện fastclick sẽ "khắc phục" sự chậm trễ nhấp chuột chỉ khi cần thiết

Các vấn đề liên quan