सामग्री पर जाएं

iOS लाइव एक्टिविटीज़

लाइव एक्टिविटीज़ आपके ऐप का सबसे ताज़ा डेटा iPhone या iPad की लॉक स्क्रीन पर और डायनामिक आइलैंड में दिखाती हैं। यह सुविधा उपयोगकर्ताओं को एक नज़र में लाइव जानकारी देखने और प्रदर्शित जानकारी से संबंधित त्वरित कार्य करने की अनुमति देती है।

लाइव एक्टिविटीज़ का उपयोग करने के कुछ उदाहरण यहां दिए गए हैं:

  • डिलीवरी ऐप में ऑर्डर की स्थिति दिखाएं;
  • ट्रेनिंग ऐप में रीयल-टाइम काउंटडाउन प्रदान करें;
  • टैक्सी ऐप में ट्रैकिंग जानकारी दिखाएं;
  • स्पोर्ट्स ऐप में गेम के आँकड़े और वर्तमान स्कोर प्रदर्शित करें;
  • मौसम ऐप में घंटे के हिसाब से पूर्वानुमान प्रदान करें।

आप नीचे बताए अनुसार Pushwoosh iOS SDK का उपयोग करके लाइव एक्टिविटीज़ को सक्षम कर सकते हैं। लाइव एक्टिविटीज़ को प्रबंधित करने और उनकी सामग्री को अपडेट करने के लिए, /updateLiveActivity विधि का उपयोग करें।

सेटअप

Anchor link to

एक विजेट एक्सटेंशन जोड़ें

Anchor link to
  1. एक नया लक्ष्य बनाएँ

File > New > Target पर जाएँ और Widget Extension चुनें।

  1. विजेट एक्सटेंशन कॉन्फ़िगरेशन कृपया एक नाम दर्ज करें और Include Live Activity का चयन करना सुनिश्चित करें और Finish पर क्लिक करें।

Info.plist कॉन्फ़िगरेशन

Anchor link to

प्राथमिक लक्ष्य में Info.plist फ़ाइल खोजें, “Supports Live Activities” कुंजी डालें, और इसका मान YES पर सेट करें।

<key>NSSupportsLiveActivities</key>
<true/>

ऐप से लाइव एक्टिविटीज़ सक्षम करना

Anchor link to

लाइव एक्टिविटीज़ को सक्षम करने के लिए, उनके कोड को अपने मौजूदा विजेट एक्सटेंशन में जोड़ें या यदि आपके ऐप में पहले से नहीं है तो एक नया बनाएँ। लाइव एक्टिविटीज़ अपने यूजर इंटरफेस के लिए SwiftUI और WidgetKit कार्यक्षमता का उपयोग करती हैं। ActivityKit प्रत्येक लाइव एक्टिविटी के जीवन चक्र को संभालता है: इसका API एक लाइव एक्टिविटी का अनुरोध करने, अपडेट करने और समाप्त करने और ActivityKit पुश नोटिफिकेशन प्राप्त करने के लिए उपयोग किया जाता है। आप Apple दस्तावेज़ीकरण में लाइव एक्टिविटीज़ के बारे में अधिक जान सकते हैं।

  1. Xcode में अपने प्रोजेक्ट की ContentView फ़ाइल पर नेविगेट करें और एक बटन बनाएँ
import SwiftUI
struct ContentView: View {
var body: some View {
VStack(spacing: 20) {
Button(action: {
LiveActivityManager.shared.startActivity()
}, label: {
Text("Start Live Activity")
.foregroundColor(.white)
.padding()
.background(Color.blue)
.cornerRadius(10)
})
}
.padding()
}
}
#Preview {
ContentView()
}
  1. लाइव एक्टिविटीज़ को प्रबंधित करने के लिए एक LiveActivityManager.swift फ़ाइल बनाएँ
import Foundation
import ActivityKit
import UIKit
import PushwooshFramework
import PushwooshLiveActivities
class LiveActivityManager: NSObject, ObservableObject {
public static let shared: LiveActivityManager = LiveActivityManager()
private var currentActivity: Activity<FoodDeliveryAttributes>? = nil
override init() {
super.init()
}
func startActivity() {
guard ActivityAuthorizationInfo().areActivitiesEnabled else {
print("You can't start live activity.")
return
}
do {
let pushwooshData = PushwooshLiveActivityAttributeData(activityId: "activity_id")
let atttribute = FoodDeliveryAttributes(orderNumber: "1234567", pushwoosh: pushwooshData)
let initialState = FoodDeliveryAttributes.ContentState(
status: "Preparing your meal",
estimatedTime: "25 min",
emoji: "👨‍🍳",
pushwoosh: nil
)
let activity = try Activity<FoodDeliveryAttributes>.request(
attributes: atttribute,
content: .init(state:initialState , staleDate: nil),
pushType: .token
)
self.currentActivity = activity
Task {
for await pushToken in activity.pushTokenUpdates {
let pushTokenString = pushToken.reduce("") {
$0 + String(format: "%02x", $1)
}
print("Activity:\(activity.id) push token: \(pushTokenString)")
// MARK: - Send Push Token to Pushwoosh
Pushwoosh.LiveActivities.startLiveActivity(
token: pushTokenString,
activityId: "activity_id"
)
}
}
} catch {
print("Start Activity Error: \(error.localizedDescription)")
}
}
}
  1. बस, अब हम प्रोजेक्ट चलाते हैं और ‘Start Live Activity’ बटन दबाते हैं। फिर हम लॉक स्क्रीन पर नेविगेट करते हैं और बनाई गई लाइव एक्टिविटी देखते हैं।

रिमोट पुश नोटिफिकेशन के साथ लाइव एक्टिविटी शुरू करें

Anchor link to
  1. रिमोट पुश नोटिफिकेशन के माध्यम से एक लाइव एक्टिविटी शुरू करने के लिए, आपको Pushwoosh को pushToStartTokenUpdates टोकन भेजना होगा।
func getPushToStartToken() {
if #available(iOS 17.2, *) {
Task {
for await data in Activity<LiveActivityAttributes>.pushToStartTokenUpdates {
let token = data.map {String(format: "%02x", $0)}.joined()
print("Activity PushToStart Token: \(token)")
// Send `pushToStartTokenUpdates` token to Pushwoosh
try await Pushwoosh.LiveActivities.sendPushToStartLiveActivity(token: token)
}
}
}
}
  1. रिमोट पुश नोटिफिकेशन के साथ एक लाइव एक्टिविटी शुरू करें

लाइव एक्टिविटीज़ का प्रबंधन

Anchor link to

Pushwoosh iOS SDK लाइव एक्टिविटीज़ के साथ काम करने के लिए निम्नलिखित विधियाँ प्रदान करता है:

// Send Live Activity Push To Start Token to Pushwoosh
static func sendPushToStartLiveActivity(token: String)
static func sendPushToStartLiveActivity(token: String, completion: @escaping (Error?) -> Void)
// Start Live Activity Methods with Activity ID
static func startLiveActivity(token: String, activityId: String)
static func startLiveActivity(token: String, activityId: String, completion: @escaping (Error?) -> Void)
// Stop Live Activity Methods
static func stopLiveActivity()
static func stopLiveActivity(completion: @escaping (Error?) -> Void)
static func stopLiveActivity(activityId: String)
static func stopLiveActivity(activityId: String, completion: @escaping (Error?) -> Void)

आप एक्टिविटी आईडी पैरामीटर का उपयोग करके सेगमेंट द्वारा लाइव एक्टिविटीज़ को भी अपडेट कर सकते हैं। एक एक्टिविटी बनाते समय, आपको विधि में एक अद्वितीय एक्टिविटी आईडी पैरामीटर पास करना होगा, जो एक विशिष्ट उपयोगकर्ता सेगमेंट के लिए प्रासंगिक होगा।

उदाहरण के लिए, N उपयोगकर्ताओं ने एक लाइव एक्टिविटी में एक ही ईवेंट की सदस्यता ली है। यह आवश्यक है कि एक्टिविटी आईडी पैरामीटर इन सभी N उपयोगकर्ताओं के लिए अद्वितीय हो।

जब आप एक लाइव एक्टिविटी के साथ काम करना समाप्त कर लें, तो इन विधियों का उपयोग करें:

static func stopLiveActivity()
static func stopLiveActivity(completion: @escaping (Error?) -> Void)

Setup() विधि।

Anchor link to

Pushwoosh PushwooshLiveActivities.setup फ़ंक्शन पेश करके एक्टिविटी आईडी के हस्तांतरण को सरल बनाता है, जो एप्लिकेशन के भीतर एक लाइव एक्टिविटी के पूरे जीवनचक्र को संभालता है। यह फ़ंक्शन स्वचालित रूप से pushToStart और pushToUpdate टोकन अपडेट दोनों को सुनता है। इस विधि का उपयोग करके, एप्लिकेशन को अब लाइव एक्टिविटीज़ की शुरुआत को मैन्युअल रूप से ट्रैक करने या एक्टिविटी अपडेट के लिए टोकन अपडेट प्रबंधित करने की आवश्यकता नहीं है।

हम इस विधि का उपयोग करने की सलाह देते हैं क्योंकि यह हमारी तरफ से सभी टोकन प्रबंधन को संभालता है, जिससे आपको अपने अंत में बनाए रखने के लिए आवश्यक कोड की मात्रा कम हो जाती है। यह एकीकरण को सरल बनाता है और आपके ऐप के लिए एक सहज, अधिक कुशल अनुभव सुनिश्चित करता है।

AppDelegate में, सुनिश्चित करें कि आप PushwooshFramework और PushwooshLiveActivities आयात करते हैं और Pushwoosh.LiveActivities मॉड्यूल से setup विधि को कॉल करते हैं।

AppDelegate.swift

if #available(iOS 16.1, *) {
Pushwoosh.LiveActivities.setup(FoodDeliveryAttributes.self)
}

FoodDeliveryAttributes

import WidgetKit
import SwiftUI
import ActivityKit
import PushwooshFramework
import PushwooshLiveActivities
struct FoodDeliveryAttributes: PushwooshLiveActivityAttributes {
public struct ContentState: PushwooshLiveActivityContentState {
var status: String
var estimatedTime: String
var emoji: String
var pushwoosh: PushwooshLiveActivityContentStateData?
}
var orderNumber: String
var pushwoosh: PushwooshLiveActivityAttributeData
}

FoodDeliveryAttributes: यह संरचना PushwooshLiveActivityAttributes प्रोटोकॉल के अनुरूप है। इसका उपयोग ऐप के भीतर एक लाइव एक्टिविटी की विशेषताओं को परिभाषित करने के लिए किया जाता है।

माइग्रेशन गाइड

Anchor link to

Pushwoosh iOS SDK के संस्करण 6.8.0 से, हमने SDK संरचना को अपडेट किया है। लाइव एक्टिविटीज़ विधियों को अब PushwooshLiveActivities मॉड्यूल के माध्यम से एक्सेस किया जाता है।

यदि आप Pushwoosh iOS SDK के 6.8.0 से पहले के संस्करण का उपयोग कर रहे थे और नीचे सूचीबद्ध विधियों को कॉल कर रहे थे, और तब से संस्करण 6.8.0 या बाद के संस्करण में अपडेट किया है, तो कृपया निम्नलिखित परिवर्तनों पर ध्यान दें:

static func setup<Attributes: PushwooshLiveActivityAttributes>(_ activityType: Attributes.Type)
static func defaultSetup()
static func defaultStart(_ activityId: String, attributes: [String: Any], content: [String: Any])

अब, इन विधियों तक पहुँचने के लिए, आपको LiveActivity मॉड्यूल का उपयोग करना चाहिए।

import PushwooshFramework
import PushwooshLiveActivities
Pushwoosh.LiveActivities.setup(FoodDeliveryAttributes.self)
Pushwoosh.LiveActivities.defaultSetup()
Pushwoosh.LiveActivities.defaultStart("activity_id",
attributes: ["key_attribute": "value_attribute"],
content: ["key_content": "value_content"])

हमने नीचे सूचीबद्ध Pushwoosh.sharedInstance() के माध्यम से विधियों के लिए समर्थन भी बनाए रखा है, लेकिन कृपया ध्यान दें कि इन विधियों को भविष्य के रिलीज में पदावनत कर दिया जाएगा।

// Send Live Activity Push To Start Token to Pushwoosh
static func sendPushToStartLiveActivity(token: String)
static func sendPushToStartLiveActivity(token: String, completion: @escaping (Error?) -> Void)
// Start Live Activity Methods with Activity ID
static func startLiveActivity(token: String, activityId: String)
static func startLiveActivity(token: String, activityId: String, completion: @escaping (Error?) -> Void)
// Stop Live Activity Methods
static func stopLiveActivity()
static func stopLiveActivity(completion: @escaping (Error?) -> Void)
static func stopLiveActivity(activityId: String)
static func stopLiveActivity(activityId: String, completion: @escaping (Error?) -> Void)