2017-06-22 13 views
11

प्रोग्राम के सेटिंग स्क्रीन पर उपयोगकर्ता भेजने के बाद, वहाँ बाएँ ऊपरी कोने में एक बैक-टू-एप्लिकेशन बटन है । हालांकि, उस बिंदु पर आवेदन एक ही तरीके है कि कहा जा रहा है जब हम पृष्ठभूमि से वापस पाने के साथ अपने प्रतिनिधि कॉल:एप्लिकेशन बटन हैंडलर वापस

applicationWillEnterForeground

और

applicationDidBecomeActive

इस बीच, मैं कि क्या भेद करने के लिए की जरूरत है उपयोगकर्ता इस विशेष "बैक-टू-ऐप" बटन को टैप करके या किसी अन्य तरीके से पृष्ठभूमि में भेजने के बाद बस ऐप दर्ज करके ऐप पर वापस आया। क्या यह किसी भी तरह से संभव है?

+0

देख https://stackoverflow.com/questions/13447101/bring-previous-app-back-to-the-front-when-user-is-done-with-my-ios -एप – Burnie777

+1

यदि आप "प्रोग्राम स्क्रीन पर उपयोगकर्ता को प्रोग्रामेटिक रूप से भेज रहे हैं", तो क्या आप बस इससे पहले अपने ऐप में ध्वज सेट नहीं कर पाए? फिर 'applicationDidBecomeActive' में, इसके लिए जांचें। – dfd

+0

@dfd उपयोगकर्ता तब सेटिंग छोड़ सकते हैं और किसी भी समय बाद में ऐप पर वापस जा सकते हैं। फिर ध्वज अभी भी सत्य पर सेट है, जबकि यह अब – user3581248

उत्तर

3

मेरा मानना ​​है कि डिफ़ॉल्ट रूप से अंतर करने का कोई तरीका नहीं है।

मेरा सुझाव है, यदि आप किसी विशेष सेटिंग्स प्रविष्टि परिवर्तन के लिए ध्यान केंद्रित कर रहे हैं, तो बस applicationDidBecomeActive में पुराने सेटिंग के साथ नई सेटिंग के मान की तुलना करें। यदि कोई बदलाव है, तो आप प्रवाह को अलग कर सकते हैं। हालांकि, अगर कोई बदलाव नहीं है, तो आप नहीं कर सकते।

+0

दुर्भाग्यवश यह समाधान मेरे लिए काम नहीं करेगा, क्योंकि मैं उपयोगकर्ता को ऑटो-लॉक सेटिंग्स में भेज रहा हूं, और जो मुझे पता है, उन्हें कोड से नहीं पढ़ा जा सकता है ... – user3581248

2

क्या आप दो ऐप्स विकसित करते हैं जिन्हें आप कनेक्ट करना चाहते हैं?

फिर अपने ऐप में छोड़ने के लिए कहीं अधिक तरीका है कि आप वर्णित है:

  1. उपयोगकर्ता होम बटन टैप करता एक बार
  2. उपयोगकर्ता घर बटन को दो बार
  3. उपयोगकर्ता पावर बटन दबाएं टैप करता है, जबकि अनुप्रयोग एक में अब भी है अग्रभूमि
  4. 3 डी-स्पर्श सक्षम डिवाइस पर उपयोगकर्ता अग्रणी किनारे में 3 डी स्पर्श करते हैं।
  5. उपयोगकर्ता का उपयोग करता है "वापस एप्लिकेशन के पास" बात आप वर्णित
  6. उपयोगकर्ता अधिसूचना हो जाता है और यह वहाँ
  7. पिकअप पॉप
  8. उपयोगकर्ता अधिसूचना से अन्य एप्लिकेशन को जाता है
  9. उपयोगकर्ता अधिसूचना केंद्र खुल जाता है और कर कार्रवाई उपयोगकर्ता नियंत्रण केंद्र खोलता है और वहां कुछ कार्रवाई करता है
  10. उपयोगकर्ता आपके ऐप के अंदर साझा करने की कार्यक्षमता या हाइपरलिंक का उपयोग करता है जो अन्य ऐप्स को ट्रिगर कर सकता है।

मुझे sth याद आ सकता है, लेकिन यह सूची मैंने यह दिखाने के पक्ष में बनाई है कि, इस कार्रवाई के बीच अंतर बहुत कठिन हो सकता है। भले ही आप किसी एक कार्रवाई को संभालेंगे, अन्य सभी कार्यों को जरूरी नहीं है।

यदि आप उस समस्या के बारे में और बताएंगे जो आपके पास है या समस्या जिसे आप हल करने का प्रयास कर रहे हैं, के बारे में और बताएंगे।

+0

ऐप I की आवश्यकताएं I विकासशीलता में एक प्रवाह शामिल है जो उपयोगकर्ता को ऑटो-लॉक समय बदलने की अनुमति देता है (इसे प्रारंभ में एंड्रॉइड पर विकसित किया गया था जहां स्पष्ट रूप से आप इसे कोड से कर सकते हैं)। जाहिर है, एंड्रॉइड पर बिल्कुल ऐसा करने का कोई विकल्प नहीं है, इसलिए मेरा विचार प्रोग्रामिक रूप से उपयोगकर्ता को सेटिंग्स स्क्रीन पर भेजना था। लेकिन एक और आवश्यकता है - हर बार जब हम ऐप पर वापस आते हैं, तो हमें स्टार्ट स्क्रीन पर वापस जाना चाहिए, क्योंकि अन्य स्क्रीन में गोपनीय डेटा हो सकता है। लेकिन ऊपर वर्णित परिदृश्य में मैं स्टार्ट स्क्रीन पर वापस नहीं आना चाहता हूं, लेकिन ऐप सेटिंग्स की स्क्रीन पर वापस जाना चाहता हूं। – user3581248

+1

उस स्थिति में, उपयोगकर्ता सेटिंग स्क्रीन पर जाने से पहले उपयोगकर्ता को स्क्रीन शुरू करने के लिए स्थानांतरित कर सकता है। इस तरह आप अपना लक्ष्य प्राप्त कर सकते हैं। @JayeshSojitra टिप्पणी के लिए –

+0

+1। उपयोगकर्ता 381248 - एंड्रॉइड * बंदरगाह * कभी 100% नहीं हैं। इससे भी बदतर, कम से कम मेरे (और शायद अन्य), यह है कि आप ** कभी भी ** इस प्रश्न का विवरण अपने प्रश्न में नहीं डालते। कृपया, यह आपके प्रश्न के हिस्से के रूप में है! (एंड्रॉइड भाग नहीं - जो मदद कर सकता है - लेकिन होम स्क्रीन पर वापस लौटने की आवश्यकता * * आईओएस उपयोगकर्ता को सेटिंग्स में भेजने के बाद। यह * बेहद महत्वपूर्ण है।) – dfd

1

मैं एक सामान्य इसी तरह की समस्याओं विभिन्न लांच विकल्प का पता लगाने ((चल रहा है कैसे हमारे अनुप्रयोग सक्रिय अवस्था में है))

स्विफ्ट 2 हल करने के लिए संबंधित समाधान सुझाव है।3

AppDelegate में

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

if let options = launchOptions{ 

print(options.description) 

//These options will give the difference between launching from background or from pressing the back button 

if (launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] != nil) { 

//this indicates the app is launched by pressing Push notifications 
}else if (launchOptions?[UIApplicationLaunchOptionsLocalNotificationKey] != nil) { 

//This indicates the app is launched on tapping the local notifications 

}else if (launchOptions?[UIApplicationLaunchOptionsSourceApplicationKey] != nil){ 

//This indicates the App launched from a valid source e.g: on tap of Open App from App Store when your App is installed or directly from home screen 

} 
} 

} 

संदर्भ: एप्पल डॉक्स सभी उपलब्ध लांच विकल्प जो जोड़कर

https://developer.apple.com/documentation/uikit/uiapplicationdelegate/launch_options_keys

पता लगाया जा सकता प्रतिनिधि प्रोटोकॉल विधियों की शक्ति का उपयोग करें प्रदान पर्यवेक्षक

https://developer.apple.com/documentation/uikit/uiapplicationdelegate

स्विफ्ट 3 समतुल्य:

//adding observer 

     NotificationCenter.default.addObserver(self, 
      selector: #selector(applicationDidBecomeActive), 
      name: .UIApplicationDidBecomeActive, 
      object: nil) 

//removing observer 

     NotificationCenter.default.removeObserver(self, 
      name: .UIApplicationDidBecomeActive, 
      object: nil) 

// callback 

     func applicationDidBecomeActive() { 
      // handle event 
     } 

Stackoverflow में इसी प्रकार के प्रश्न जो मेरे आप मदद आउट:

Detect when "back to app" is pressed

How to detect user returned to your app in iOS 9 new back link feature?

Detect if the app was launched/opened from a push notification

Checking launchOptions in Swift 3

संबंधित मुद्दे