2012-05-24 15 views
18

के साथ एक मोबाइल ऐप बनाना वर्तमान में मैं jQuery मोबाइल का उपयोग करके मोबाइल एप्लिकेशन बनाना शुरू कर रहा हूं और मूल ऐप समर्थन के लिए इसे फोनगैप के साथ लपेट रहा हूं, यह Django में लिखे गए हमारे पहले से मौजूद डेस्कटॉप एप्लिकेशन का विस्तार है , मेरा सवाल है, सर्वर पक्ष में एचटीएमएल 5/जेएस/सीएसएस में लिखे गए क्लाइंट साइड ऐप को जोड़ने का सबसे अच्छा तरीका क्या है, क्या मैं सिर्फ डेटा भेजने/प्राप्त करने के लिए JSON का उपयोग करता हूं, और क्या इस पर कोई भी अच्छा लेख है?jQuery मोबाइल, Django, और Phonegap

उत्तर

19

मैंने व्यक्तिगत रूप से JqueryMobile के साथ कई मूल ऐप्स बनाए हैं - मेरी फ्रंटेंड के रूप में - Django सर्वर पक्ष के रूप में - और फोनगैप को मूल रूप से आईट्यून स्टोर एप्लिकेशन में लपेटने के लिए। यह वास्तव में प्रौद्योगिकियों का एक बड़ा संयोजन है कि - यदि सही तरीके से किया जाता है - एक तेज़ देशी आवेदन प्राप्त कर सकता है।

सबसे पहले आपको टेस्टपी में देखना चाहिए। Tastypie एक त्वरित RESful API बनाने का एक बहुत ही आसान तरीका है जो JSON डेटा को जावास्क्रिप्ट/JQuery पर भेज सकता है। यह एक Django ऐप है और यह बहुत पाइथनिक है (आसान वर्ग/विधि ओवरराइड के बहुत सारे - सबकुछ पारदर्शी है)।

आंकड़ा अंतरण के प्रवाह को कुछ इस तरह दिखेगा:

  1. एक jquery.ajax समारोह या एक निर्दिष्ट URL से/पोस्ट/पुट JSON डेटा प्राप्त करने के लिए एक getJSON समारोह का उपयोग करें।

  2. यह यूआरएल आपके मॉडल से बनाई गई स्वादिष्ट एपीआई है। ऐसा लगता है जैसे/API/vi/ब्लॉग दिखाई दे सकता है/सब/

  3. अब आप jQuery के साथ अपने दृश्यपटल में JSON डेटा है - आदि

    - रूपों के साथ काम - एक मेज में भरने - आप जो कुछ भी आप चाहते हैं के साथ यह कर सकते हैं

पहले कुछ jquery/jquery मोबाइल AJAX फ़ंक्शन देखें और Jquery लाइब्रेरी के साथ अग्रभाग पर JSON के साथ कैसे काम करें। दूसरी बार जेएसओएन को Django व्यू पर वापस भेजने से डेटा प्राप्त करें (डेटा को पार्स करना और डेटाबेस में सहेजना)। फिर JQuery मोबाइल उपयोगकर्ता इंटरफ़ेस के विनिर्देशों और फोनगैप के साथ अच्छी तरह से काम करने के लिए कदमों में गोता लगाएँ।

+1

मेरे पास एक और सवाल है, अगर मैं Django प्रमाणीकरण प्रणाली का उपयोग कर रहा हूं, और मुझे उपयोगकर्ताओं को लॉगिन करने की आवश्यकता है, तो मैं इसे कैसे प्राप्त करूंगा, इसलिए जब वे ऐप खोलें तो यह उन्हें एक बार लॉगिन करने के लिए संकेत देता है, और उनके पास उपयोगकर्ता नाम याद रखने का विकल्प होगा/पासवर्ड और उपयोगकर्ता को लॉग इन रखें, यह सोचकर कि यह हासिल करने का सबसे अच्छा तरीका क्या है, यह देखते हुए कि फोनगैप ऐप क्लाइंट साइड एचटीएमएल/सीएसएस/जेएस और डीजेंगो ऐप पर जेएसओएन डेटा खिलाएगा – flaiks

+4

अरे - मैं मैंने इसे कुछ बार भी किया है। आप जेएसओएन को वापस Django भेज सकते हैं। आपके पास अपना लॉगिन फॉर्म है और आप लॉगिन फॉर्म से उपयोगकर्ता नाम/पासवर्ड एकत्र करते हैं। यहां से जाने के कुछ तरीके हैं। सबमिट फॉर्म में आपकी कार्रवाई उपयोगकर्ता नाम/पासवर्ड को एक django url पर पोस्ट कर सकता है जो एक दृश्य फ़ंक्शन में उपयोगकर्ता नाम/पासवर्ड ले और तुलना करेगा। आपकी फ़ॉर्म क्रिया कार्रवाई =/चेक-लॉगिन/डेटा पास कर सकती है। आप इसे AJAX के साथ भी कर सकते हैं - इसके बजाए फॉर्म जमा करना - फ़ेल भेजने के लिए AJAX का उपयोग करें डी डेटा को उसी django url/देखें –

+2

दूसरा - किसी को लॉग इन रखने के लिए - आप डिवाइस पर उपयोगकर्ता के बारे में डेटा रखने के लिए फोनगैप स्थानीय संग्रहण का उपयोग कर सकते हैं। उपयोगकर्ता वरीयताओं को सहेजें, आदि –

4

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

देख http://jquerymobile.com/test/docs/pages/phonegap.html

उसके अलावा, वहाँ हो रही है/JSON पोस्टिंग के संबंध में एक phonegap मोबाइल आवेदन और एक नियमित वेब अनुप्रयोग के बीच ज्यादा अंतर नहीं है।

+0

वैसे आम तौर पर, मैं प्रोग्राम कैसे करूं, यह मेरा एचटीएमएल फ्रेमवर्क और कोड बनाने के लिए jQuery मोबाइल का उपयोग करता है जो django टेम्पलेट्स में है, और उसके बाद डेटा को उन दृश्यों/टेम्पलेट्स में आउटपुट करने के लिए django का उपयोग करें। तो मैं क्या पूछ रहा था, अगर JSON उस के लिए सबसे अच्छा तरीका है? – flaiks

+1

यह सही नहीं है। फ़ाइल से चलते समय: // मोबाइल ब्राउज़र पर प्रोटोकॉल सीओआरएस लागू नहीं होता है। –

+1

मेरे उत्तर में लिंक के अनुसार "चूंकि jQuery मोबाइल jQuery कोर की $ .ajax() कार्यक्षमता पर निर्भर करता है, $ .support.cors को क्रॉस-डोमेन पृष्ठों को लोड करने के लिए $ .ajax बताने के लिए सत्य पर सेट होना चाहिए। हमने रिपोर्टें सुना है ब्लैकबेरी जैसे कुछ प्लेटफार्मों पर वेबव्यू, क्रॉस-डोमेन लोडिंग का समर्थन करते हैं, लेकिन यह कि jQuery कोर गलत रूप से $ .support.cors मान को गलत पर सेट करता है जो क्रॉस-डोमेन $ .ajax() अनुरोध अक्षम करता है और पृष्ठ या संपत्ति लोड करने में असफल हो जाता है ।" – chad

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