iOS
NSUserActivity
खोज…
परिचय
एक NSUserActivity ऑब्जेक्ट का उपयोग सिस्टम के साथ ऐप में महत्वपूर्ण घटनाओं को समन्वयित करने के लिए किया जा सकता है। यह आईओएस और मैकओएस पर चलने वाले विभिन्न उपकरणों के बीच हैंडऑफ का आधार है। इसके अतिरिक्त, इसका उपयोग सार्वजनिक-अनुक्रमण में सुधार करने और किसी ऐप के लिए स्पॉटलाइट खोज परिणाम बनाने के लिए भी किया जा सकता है। IOS 10 के रूप में, इसका उपयोग आपके ऐप और सिरी के बीच बातचीत को समन्वित करने के लिए भी किया जा सकता है।
टिप्पणियों
गतिविधि के प्रकार
NSUserActivityTypes
कुंजी के तहत समर्थित गतिविधि प्रकारों को आपके ऐप के Info.plist
फ़ाइल में परिभाषित किया जाना चाहिए। गतिविधियां आपकी डेवलपर टीम आईडी से जुड़ी होती हैं, जिसका अर्थ है कि उन टीम आईडी के बीच गतिविधि समन्वय प्रतिबंधित है (जैसे "सफारी" "क्रोम" या इसके विपरीत से हैंडऑफ़ गतिविधि को स्वीकार नहीं कर सकता)।
वर्तमान गतिविधि बनना / इस्तीफा देना
एक गतिविधि को करंट के रूप में चिह्नित करना, जो वर्तमान में उपयोग कर becomeCurrent
है, इसे becomeCurrent
या स्पॉटलाइट इंडेक्सिंग के लिए उपलब्ध becomeCurrent
है। एक समय में केवल एक गतिविधि चालू हो सकती है। आप resignCurrent
को कॉल करके अमान्य के रूप में एक गतिविधि को निष्क्रिय कर resignCurrent
।
यदि आप किसी गतिविधि को invalidate
करते हैं, तो उसी उदाहरण को फिर से चालू नहीं किया जा सकता है।
सिरीकिट के लिए प्रदान करते समय एक गतिविधि को वर्तमान के रूप में चिह्नित न करें।
अनुक्रमण खोजें
गतिविधियों को आपके ऐप के भीतर एक सामान्य-प्रयोजन अनुक्रमण तंत्र के रूप में उपयोग नहीं किया जाना है। इसके बजाय, उन्हें केवल उपयोगकर्ता द्वारा शुरू किए गए कार्यों के जवाब में उपयोग किया जाना चाहिए। अपने ऐप की सभी सामग्री को अनुक्रमित करने के लिए, CoreSpotlight का उपयोग करें।
एक NSUserActivity बनाना
NSUserActivity
ऑब्जेक्ट बनाने के लिए, आपके ऐप को अपनी Info.plist
फ़ाइल में इस प्रकार की गतिविधियों की घोषणा करनी चाहिए। समर्थित गतिविधियों को आपके आवेदन द्वारा परिभाषित किया गया है और यह अद्वितीय होना चाहिए। एक गतिविधि को रिवर्स-डोमेन स्टाइल नामकरण योजना (यानी "com.companyName.productName.activityName") का उपयोग करके परिभाषित किया गया है। यहाँ आपके Info.plist में एक प्रविष्टि कैसी दिख सकती है:
चाभी | मूल्य |
---|---|
NSUserActivityTypes | [सरणी] |
- आइटम ० | com.companyName.productName.activityName01 |
- वस्तु 1 | com.companyName.productName.activityName02 |
एक बार जब आप सभी समर्थित गतिविधि प्रकारों को परिभाषित कर लेते हैं, तो आप अपने एप्लिकेशन के कोड में उन्हें एक्सेस और उपयोग करना शुरू कर सकते हैं।
NSUserActivity
ऑब्जेक्ट बनाने के लिए आपको निम्नलिखित कार्य करने होंगे
// Initialize the activity object and set its type from one of the ones specified in your app's plist
NSUserActivity *currentActivity = [[NSUserActivity alloc] initWithActivityType:@"com.companyName.productName.activityName01"];
// Set the title of the activity.
// This title may be displayed to the user, so make sure it is localized and human-readable
currentActivity.title = @"Current Activity";
// Configure additional properties like userInfo which will be included in the activity
currentActivity.userInfo = @{@"informationKey" : @"value"};
// Configure the activity so the system knows what may be done with it
// It is important that you only set YES to tasks that your application supports
// In this example, we will only enable the activity for use with Handoff
[currentActivity setEligibleForHandoff:YES];
[currentActivity setEligibleForSearch:NO]; // Defaults to NO
[currentActivity setEligibleForPublicIndexing:NO]; // Defaults to NO
// Set this activity as the current user activity
// Only one activity may be current at a time on a device. Calling this method invalidates any other current activities.
[currentActivity becomeCurrent];
इसके बाद, ऊपर की गतिविधि हैंडऑफ़ के लिए उपलब्ध होनी चाहिए (हालांकि "हैंडऑफ़" को ठीक से संभालने के लिए अधिक काम करने की आवश्यकता है)।