iOS অ্যাপ্লিকেশন ডিজাইন করার সময় আপনি এমন পরিস্থিতিতে পড়তে পারেন যেখানে স্ক্রিন নির্দিষ্ট সময় নিষ্ক্রিয় থাকলে কিছু অ্যাকশন নেওয়া প্রয়োজন।
এখানে আমরা একই বিষয় দেখব, ৫ সেকেন্ড ইউজার ইনঅ্যাক্টিভিটি ডিটেক্ট করব।
আমরা Apple-এর UITapGestureRecognizer ব্যবহার করব, এর সম্পর্কে আরো জানুন: https://developer.apple.com/documentation/uikit/uitapgesturerecognizer।
চলুন শুরু করি! আমরা একটি বেসিক অ্যাপ্লিকেশন ডিজাইন করব যেখানে অ্যাপ লঞ্চ होते হই টাইমার শুরু হবে। যদি ইউজার ৫ সেকেন্ড স্ক্রিন স্পর্শ না করে বা কোনো অপারেশন না করে, তবে আমরা "User inactive for more than 5 seconds." মেসেজ দেখাব। যদি ইউজার স্ক্রিন স্পর্শ করে, তবে টাইমার রিসেট হবে।
Step 1 − Xcode → Single View Application → নাম দিন "DetectingInactivity"।
Step 2 − ViewController.swift খুলুন এবং নিচের কোড কপি করুন, নিচে ব্যাখ্যা দেওয়া আছে।
import UIKit
class ViewController: UIViewController {
// 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() {
// যেকোনো অ্যাকশন পারফর্ম করুন যা আপনি চান
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)
}
}
Step 3 − অ্যাপ্লিকেশন রান করুন!
লঞ্চ হলে টাইমার কল হয় এবং আপনি যদি স্ক্রিন স্পর্শ না করেন, doStuff() ফাংশন কল হবে। এখানে আপনি যেকোনো অ্যাক্টিভিটি পারফর্ম করতে পারেন যা আপনি চান যখন ইউজার নির্দিষ্ট সময় স্ক্রিন স্পর্শ না করে।
যদি ইউজার স্ক্রিন স্পর্শ করে, resetTimer() ফাংশন কল হবে যেখানে টাইমার আবার রিসেট হবে।