मैं वर्तमान में एक ऐप बनाना चाहता हूं जो आईओएस 8 और इसके बाद के संस्करण के लिए समर्थन करता है। मेरे ऐप में, मैं 'दिन का शब्द' जैसी दैनिक अधिसूचना करना चाहता हूं। इसलिए मैंने स्थानीय अधिसूचना की कोशिश की, आईओएस 8-9 के लिए UILocalNotification का उपयोग कर रहे हैं जबकि ios10 NSNotificationcenter का उपयोग कर रहा है। लेकिन मैं अभी फंस गया हूं क्योंकि मैंने वेरिएबल में अलर्टबॉडी में पास करने की कोशिश की है। यह खाली प्रिंट हो रहा है, क्योंकि दिन का शब्द मुझे यूआरएल सत्र अनुरोध से मिला है। तो मैं सोच रहा हूँ, मुझे यह कैसे करना चाहिए? कृपया सहायता कीजिए!

-1
Andrew 28 सितंबर 2017, 07:18
कृपया बेहतर समझ के लिए कोड साझा करें
 – 
Nupur Gupta
28 सितंबर 2017, 08:40
यदि कोड के बिना, क्या आप संक्षेप में अवधारणा की व्याख्या कर सकते हैं? मूल रूप से, मेरे सर्वर से दिन का शब्द प्राप्त करने के लिए, मुझे json प्राप्त करने और इसे अपने ऑब्जेक्ट में डालने के लिए URLrequest का उपयोग करने की आवश्यकता है। मेरा सवाल यह है कि मैं हर सुबह 10 बजे पृष्ठभूमि से दिन के शब्द प्राप्त करने के लिए इसे कैसे करने जा रहा हूं, भले ही मैं अपना ऐप न खोलूं। क्या आपके पास कोई विचार है?
 – 
Andrew
28 सितंबर 2017, 09:10
दैनिक सूचनाएं प्राप्त करने के लिए आप स्थानीय सूचनाओं का उपयोग कर सकते हैं।
 – 
Nupur Gupta
28 सितंबर 2017, 09:52
मैंने स्थानीय का उपयोग करने की कोशिश की, लेकिन केवल अगर मैं दिन के शब्द प्राप्त करने के लिए URLrequest करने में सक्षम हूं तो केवल चर को अधिसूचना में पास कर सकता हूं। समस्या यह है कि यदि उपयोगकर्ता मेरे सर्वर से दिन का शब्द प्राप्त करने के लिए यूआरएल अनुरोध करने के लिए ऐप नहीं खोलता है तो क्या होगा? मैं URLrequest को कैसे ट्रिगर करूं?
 – 
Andrew
28 सितंबर 2017, 10:37
अपने ऐप को जगाने के लिए साइलेंट नोटिफिकेशन का उपयोग करें और कुछ बैकग्राउंड टास्क और हिट सर्विस करें। लेकिन रिमोट नोटिफिकेशन के समान सर्वर साइड से करने की जरूरत है। साइलेंट नोटिफिकेशन नोटिफिकेशन ट्रे में नहीं दिखाए जाते हैं और वे यूजर इंटरेक्शन के बिना काम करते हैं।
 – 
Nupur Gupta
28 सितंबर 2017, 10:46

1 उत्तर

सबसे बढ़िया उत्तर

दैनिक सूचनाएं प्राप्त करने के लिए आप स्थानीय सूचनाओं का उपयोग कर सकते हैं।

let notification = UILocalNotification()
notification.fireDate = date
notification.alertBody = "Alert!"
notification.alertAction = "open"
notification.hasAction = true
notification.userInfo = ["UUID": "reminderID" ]
notification.repeatInterval = NSCalendarUnit.CalendarUnitDay
UIApplication.sharedApplication().scheduleLocalNotification(notification)

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

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {

let state : UIApplicationState = application.applicationState
if (state == .Inactive || state == .Background) {
    // go to screen relevant to Notification content
} else {
    // App is in UIApplicationStateActive (running in foreground)
}
}

दिनांक 9:00 बजे निर्धारित करें

let date: NSDate = NSDate()
    let cal: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)!
    cal.timeZone = NSTimeZone(name: "GMT")!
    let newDate: NSDate = cal.dateBySettingHour(9, minute: 0, second: 0, ofDate: date, options: NSCalendarOptions())!

दिनों की संख्या जोड़ना

NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = 1;

NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *nextDate = [theCalendar dateByAddingComponents:dayComponent toDate:[NSDate date] options:0];


//Swift
var tenDaysfromNow: Date {
   return (Calendar.current as NSCalendar).date(byAdding: .day, value: 10, to: Date(), options: [])!
}
0
Nupur Gupta 28 सितंबर 2017, 12:38
उस फ़ंक्शन के लिए जो आपने मुझे प्रदान किया है, क्या यह पुश अधिसूचना से संबंधित है? क्योंकि मैं ज्यादा तेज हूं। वास्तव में ओबीजे सी नहीं जानते ..
 – 
Andrew
28 सितंबर 2017, 10:44
अरे हाँ, आपकी मदद के लिए धन्यवाद। सराहना की! बीटीडब्ल्यू, क्या आपके पास रोजाना सुबह 9 बजे समय निर्धारित करने का सही तरीका है? मैंने इतने तरीके आजमाए। मैं जो चाहता था वह काम नहीं करता है।
 – 
Andrew
28 सितंबर 2017, 11:03
मैंने कोड अपडेट किया है, कृपया जांचें। आप अपनी आवश्यकता के अनुसार TimeZone बदल सकते हैं।
 – 
Nupur Gupta
28 सितंबर 2017, 11:21
लेट डेट: NSDate = NSDate () कॉल करें: NSCalendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.ISO8601)! cal.timeZone = NSTimeZone.system लेट न्यूडेट: NSDate = cal.date(bySettingHour: 9, min: 0, second: 0, of: date as date, विकल्प: NSCalendar.Options ())! जैसा कि ऊपर NSDate है जिसे मैंने स्विफ्ट 3.0 द्वारा आवश्यक संशोधित किया है। जब मैं नया दिनांक प्रिंट करता हूं, तो मुझे जो मिला वह 2017-09-28 01:00:00 +0000 है, जबकि मेरा वर्तमान समय 2017-09-28 16:36:41.214 है। क्या यह सही है? लेकिन मुझे सुबह 9 बजे टीएमआर चाहिए। जो फिलहाल सही नहीं है....
 – 
Andrew
28 सितंबर 2017, 11:40
सिस्टम समय क्षेत्र ठीक से काम नहीं करता है। आपको स्पष्ट रूप से समय क्षेत्र प्रदान करने की आवश्यकता है। आज के अलावा किसी भी तारीख के लिए dateByAdding विधि का उपयोग करें। कृपया मेरा अद्यतन कोड जांचें।
 – 
Nupur Gupta
28 सितंबर 2017, 12:16