2016-02-09 14 views
7

में अनुप्रयोगों के बीच फ़ाइल डेटा साझा करना मैं सुरक्षित रूप से अनुप्रयोगों के बीच डेटा साझा करने के तरीके पर शोध कर रहा हूं। गलत विधि का उपयोग करके कार्यान्वयन पर गहरा गोता लगाने से पहले मैं इसे संभालने के सही तरीके से कुछ जानकारी प्राप्त करना चाहता हूं। सिर्फ इसलिए कि आप कुछ कर सकते हैं इसका मतलब यह नहीं है कि आपको चाहिए।स्विफ्ट/आईओएस

उपयोगकर्ता केस: मैं भाषा सीखने वाले ऐप्स के एक सूट पर काम कर रहा हूं जिसमें कई सौ ऑडियो फाइलों और जेसन फाइलों का साझा ऑडियो फ़ाइल बेस है जो किसी भाषा से संबंधित महत्वपूर्ण डेटा रखते हैं। जब हम अपने सूट में किसी अन्य ऐप का उपयोग करते हैं तो उपयोगकर्ता को भाषा बंडल को फिर से डाउनलोड करने की अनुमति नहीं देना चाहूंगा।

1. ऐप एक्सटेंशन - दस्तावेज़ प्रदाता गैर यूआई संस्करण

के अनुसार documentation:

फ़ाइल प्रदाता विस्तार अनुदान खुला और चाल के साथ होस्ट ही ऐप्लिकेशन के सैंडबॉक्स बाहर फ़ाइलों तक पहुँच कार्रवाई। यह एक्सटेंशन (कभी-कभी फ़ाइल प्रदाता को छोटा कर दिया जाता है) मेजबान ऐप को दस्तावेज़ पिकर व्यू कंट्रोलर प्रस्तुत किए बिना फ़ाइलों को डाउनलोड करने की अनुमति देता है। यह सुविधा मेजबान ऐप को सुरक्षित URL बुकमार्क्स का उपयोग करके पहले खोले गए दस्तावेज़ों तक पहुंचने देती है, भले ही वे फ़ाइलें डिवाइस पर संग्रहीत न हों।

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

2. साझा कीचेन पहुंच

आप सुरक्षित रूप से एक साझा कीचेन कि अन्य अनुप्रयोगों कि अनुप्रयोगों का एक सूट का हिस्सा हैं का उपयोग कर सकते करने के लिए डाटा स्टोर करने की अनुमति देता है। कीचेन एक्सेस साझा करने वाले सभी एप्लिकेशन एक ही ऐप आईडी उपसर्ग का उपयोग करना चाहिए। कार्रवाई में साझा कीचेन पहुंच के उदाहरण के लिए।

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

मैं भी this repo कि जाहिरा तौर पर कीचेन के साथ काम करता है पाया आसान:

3. कस्टम Pasteboards

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

पेस्टबोर्ड से डेटा लिखते या पढ़ने के दौरान, आपको एक पेस्टबोर्ड प्रकार निर्दिष्ट करना होगा।पेस्टबोर्ड प्रकार आमतौर पर पेस्टबोर्ड से प्राप्त होने वाले डेटा के प्रकार की पहचान करने के लिए एक समान प्रकार पहचानकर्ता (यूटीआई) का उपयोग करते हैं। अतिरिक्त जानकारी के लिए ऐप्पल के यूआईपीएस्टबोर्ड क्लास रेफरेंस दस्तावेज देखें।

प्रलेखन ऊपर से this post

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


मैं ऐप्स के बीच इन प्रकार की फ़ाइलों को साझा करने की दिशा में सर्वोत्तम प्रथाओं पर किसी भी जानकारी की सराहना करता हूं। मुझे लगता है कि मैंने यहां छोड़े गए कई अन्य समाधान हैं, इसलिए यदि कोई बेहतर विकल्प है तो मुझे इसके बारे में कुछ जानकारी पसंद आएगी। यदि ऐसा होता है तो मैंने यहां सूचीबद्ध सूचीबद्ध समाधानों में से एक है, इस समस्या को हल करने का एक अच्छा तरीका है, मुझे उनके साथ काम करने के साथ आपके अनुभव पर कुछ और जानकारी चाहिए और यदि उनके साथ मेरी चिंताओं वैध हैं, या चिंता करने की कोई बात नहीं है ।

अग्रिम में Thx। हमेशा के रूप में, अच्छी तरह से लिखित उत्तर ऊपर-वोट प्राप्त करते हैं;)

+1

पद संदर्भित एकदम सही काम करता है। धन्यवाद, डुप्लिकेट के लिए खेद है। – Unome

+0

आपका स्वागत है –

उत्तर

1

मेरा मानना ​​है कि एक ऐप समूह स्थापित करके डेटा साझाकरण को सक्षम करने का सबसे अच्छा तरीका होगा। एप्लिकेशन और एक्सटेंशन के बीच डेटा साझा करने के लिए यह ऐप्पल का अनुशंसित समाधान है, और मैं सामान्य रूप से ऐप्स के बीच डेटा साझा करने के लिए विश्वास करता हूं।

देखें अनुभाग "Sharing Data with Your Containing App"

भी देखें "Adding an App to an App Group":

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

  • कोई संबंधित समस्या नहीं^_^