Computer >> Máy Tính >  >> Lập trình >> IOS

Làm thế nào để phát hiện người dùng không hoạt động trong 5 giây trong iOS?

Trong khi thiết kế bất kỳ Ứng dụng iOS nào, bạn có thể gặp phải tình huống mà bạn phải thực hiện một số loại hành động nếu màn hình không hoạt động trong một khoảng thời gian.

Ở đây, chúng ta sẽ thấy tương tự, chúng ta sẽ phát hiện người dùng không hoạt động trong 5 giây.

Chúng tôi sẽ sử dụng UITapGestureRecognizer của Apple, bạn có thể đọc thêm về nó tại đây

https://developer.apple.com/documentation/uikit/uitapgesturerecognizer.

Vậy hãy bắt đầu! Chúng tôi sẽ thiết kế một ứng dụng cơ bản, nơi chúng tôi sẽ bắt đầu hẹn giờ ngay sau khi ứng dụng được khởi chạy. Nếu người dùng không chạm vào màn hình hoặc không thực hiện bất kỳ thao tác nào cho đến 5 giây, chúng tôi sẽ hiển thị thông báo “Người dùng không hoạt động trong hơn 5 giây”. Nếu người dùng chạm vào màn hình, chúng tôi sẽ đặt lại bộ hẹn giờ.

Bước 1 - Mở Xcode - → Ứng dụng Chế độ xem một lần - → Tên gọi là “Phát hiện hoạt động”.

Bước 2 - Mở ViewController.swift và sao chép và thêm mã, chúng ta sẽ thấy phần giải thích bên dưới

import UIKit
class ViewController: UIViewController {
   // create object of timer class
   var timer = Timer()
   override func viewDidLoad() {
      super.viewDidLoad()
      timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(ViewController.doStuff), userInfo: nil, repeats: true)
      let resetTimer = UITapGestureRecognizer(target: self, action: #selector(ViewController.resetTimer));
      self.view.isUserInteractionEnabled = true
      self.view.addGestureRecognizer(resetTimer)
   }
   @objc func doStuff() {
      // perform any action you wish to
      print("User inactive for more than 5 seconds .")
      timer.invalidate()
   }
   @objc func resetTimer() {
      timer.invalidate()
      timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(ViewController.doStuff), userInfo: nil, repeats: true)
   }
}

Bước 3 - Chạy ứng dụng!

Khi khởi chạy, bộ hẹn giờ sẽ được gọi và nếu bạn không chạm vào màn hình, chức năng doStuff () sẽ được gọi. Tại đây, bạn có thể thực hiện bất kỳ hoạt động nào bạn muốn bất cứ khi nào người dùng không chạm vào màn hình trong một khoảng thời gian nhất định.

Nếu người dùng chạm vào màn hình, chúng tôi gọi hàm resetTimer () nơi chúng tôi đặt lại bộ hẹn giờ.