किसी भी iOS एप्लिकेशन को डिजाइन करते समय आप एक ऐसे परिदृश्य में आ सकते हैं जहां आपको कुछ कार्रवाई करनी है अगर स्क्रीन कुछ समय के लिए निष्क्रिय है।
यहां हम वही देखेंगे, हम 5 सेकंड के लिए यूजर इनएक्टिविटी डिटेक्ट करेंगे।
हम Apple के UITapGestureRecognizer का उपयोग करेंगे, आप इसके बारे में यहाँ और पढ़ सकते हैं: https://developer.apple.com/documentation/uikit/uitapgesturerecognizer
शुरुआत करते हैं!
हम एक बेसिक एप्लिकेशन डिजाइन करेंगे जहां हम ऐप लॉन्च होते ही टाइमर शुरू कर देंगे। यदि यूजर 5 सेकंड तक स्क्रीन को टच नहीं करता या कोई ऑपरेशन नहीं करता तो हम "User inactive for more than 5 seconds" मैसेज प्रदर्शित करेंगे। यदि यूजर स्क्रीन को छूता है तो हम टाइमर रीसेट कर देंगे।
चरण 1: प्रोजेक्ट बनाएं
Xcode खोलें → Single View Application → नाम दें "DetectingInactivity"
चरण 2: ViewController.swift में कोड जोड़ें
import UIKit
class ViewController: UIViewController {
// Timer क्लास का ऑब्जेक्ट बनाएं
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() {
// आप जो भी एक्शन करना चाहते हैं वह करें
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() फंक्शन कॉल करते हैं जहां हम टाइमर को फिर से रीसेट करते हैं।