ขณะออกแบบแอปพลิเคชัน iOS คุณอาจเจอสถานการณ์ที่คุณต้องดำเนินการบางอย่างหากหน้าจอไม่ได้ใช้งานเป็นระยะเวลาหนึ่ง
ที่นี่เราจะเห็นเช่นเดียวกัน เราจะตรวจพบการไม่ใช้งานของผู้ใช้เป็นเวลา 5 วินาที
เราจะใช้ UITapGestureRecognizer ของ Apple คุณสามารถอ่านเพิ่มเติมได้ที่นี่
https://developer.apple.com/documentation/uikit/uitapgesturerecognizer
เริ่มกันเลย! เราจะออกแบบแอปพลิเคชันพื้นฐานที่เราจะเริ่มจับเวลาทันทีที่เปิดตัวแอปพลิเคชัน หากผู้ใช้ไม่สามารถสัมผัสหน้าจอหรือไม่ดำเนินการใดๆ จนถึง 5 วินาที เราจะแสดงข้อความ “ผู้ใช้ไม่ได้ใช้งานนานกว่า 5 วินาที ” หากผู้ใช้แตะหน้าจอ เราจะรีเซ็ตตัวจับเวลา
ขั้นตอนที่ 1 − เปิด Xcode -→ แอปพลิเคชั่นมุมมองเดียว -→ ตั้งชื่อกันว่า “DetectingInactivity”
ขั้นตอนที่ 2 − เปิด ViewController.swift แล้วคัดลอกและเพิ่มโค้ด เราจะเห็นคำอธิบายด้านล่าง
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) } }
ขั้นตอนที่ 3 - เรียกใช้แอปพลิเคชัน!
เมื่อเปิดตัวจับเวลาจะถูกเรียกและถ้าคุณไม่สัมผัสหน้าจอฟังก์ชั่น doStuff() จะถูกเรียก ที่นี่คุณสามารถทำกิจกรรมใดก็ได้ที่คุณต้องการเมื่อใดก็ตามที่ผู้ใช้ไม่สัมผัสหน้าจอเป็นระยะเวลาหนึ่ง
หากผู้ใช้แตะหน้าจอ เราจะเรียกฟังก์ชัน resetTimer() ซึ่งเราจะรีเซ็ตตัวจับเวลาอีกครั้ง