ขณะออกแบบแอปพลิเคชัน 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() ซึ่งเราจะรีเซ็ตตัวจับเวลาอีกครั้ง