2011-03-03 9 views
5

बिल्डिंग मैंने एक ग्राहक के लिए एक PHP/जावास्क्रिप्ट वेबसाइट बनाई। फिर उन्होंने मुझे एक स्टैंडअलोन मैक एप्लिकेशन के अलावा इसे दोहराने के लिए कहा। मैंने इसे एक ऐप के साथ किया जो एक एम्बेडेड वेब सर्वर, PHP, और 'वेबव्यू' को जोड़ता है - वेबकिट वेब ब्राउज़र का कोको-आईश संस्करण जो मैं एक मानक ऐप विंडो में एम्बेड कर सकता हूं। यह सब बहुत अच्छा काम किया - मुझे PHP/JS कोड की 10,000+ रेखाओं का पुन: उपयोग करना पड़ा, जिसने इसे फिर से 'देशी' कोड में फिर से कार्यान्वित करने के महीनों को बचाया।एक विंडोज ऐप w/एम्बेडेड ब्राउज़र और जावास्क्रिप्ट 'हुक'

अब वे विंडोज़ समकक्ष चाहते हैं। मुझे काफी विश्वास है कि मैं काम करने के लिए PHP और वेब सर्वर प्राप्त कर सकता हूं। और मुझे पता है कि बुनियादी आईई कार्यक्षमता एम्बेड करना बहुत आसान है।

हालांकि ... मेरे मैक सेटअप में, वेबव्यू (विंडोस्क्रिप्ट ऑब्जेक्ट सामान के माध्यम से) ने मुझे सी ++ से जावास्क्रिप्ट विधियों को कॉल करने की क्षमता दी। उदाहरण के लिए, मैं स्क्रीन को अपडेट करने के लिए सी ++ से जावास्क्रिप्ट विधि कह सकता हूं। इसी प्रकार मैं चीजों को सेट कर सकता था ताकि ब्राउज़र में एक जावास्क्रिप्ट कॉल सी ++ विधि को ट्रिगर कर सके - उदाहरण के लिए, मैंने उपयोगकर्ता को 'ब्राउज' पर क्लिक करने और वास्तविक, मानक फ़ाइल ब्राउज़र का उपयोग करके फ़ाइल पथ लेने के लिए उपयोग किया।

तो मेरा सवाल यह है कि क्या एक विंडोज-आधारित एम्बेडेड ब्राउज़र सेटअप है जो मुझे जावास्क्रिप्ट के साथ इस तरह से बातचीत करने देगा?

(- जावास्क्रिप्ट <> वेबकिट इंटरफेस काफी बेहतर विस्तार यहाँ में वर्णित है: http://lipidity.com/apple/javascript-cocoa-webkit/)

उत्तर

4

शायद Appcelerator टाइटेनियम की तरह कुछ का उपयोग कर ताकि आप तैयार है जब आपके ग्राहक का कहना है वे उस पर काम करना चाहता हूँ हो जाएगा कोशिश लिनक्स, या आईफोन, या एंड्रॉइड।

Wikipedia का हवाला देते हुए:। "Appcelerator टाइटेनियम वेब प्रौद्योगिकी का उपयोग कर मोबाइल और डेस्कटॉप अनुप्रयोगों के विकास के लिए एक मंच है [...] मानकों पर आधारित वेब प्रौद्योगिकियों के लिए समर्थन: HTML, सीएसएस और जावास्क्रिप्ट सभी प्लेटफार्मों पर साथ डेस्कटॉप प्लेटफार्मों के लिए PHP, पायथन और रूबी के साथ लोकप्रिय जावास्क्रिप्ट और AJAX फ्रेमवर्क jQuery, YUI, MooTools, सहित पवित्र समर्थन के लिए एकीकृत समर्थन। "

नौकरी के लिए एक आदर्श उपकरण की तरह लगता है।

3

जब आप वेब ब्राउज़र नियंत्रण (आईई) एम्बेड करते हैं, तो आपका एप्लिकेशन कोड केवल execScript (http://msdn.microsoft.com/en-us/library/ms536420(v=vs.85).aspx) को कॉल कर सकता है। खिड़की वस्तु पर। आप स्क्रिप्ट से window.external ऑब्जेक्ट का उपयोग करके और एप्लिकेशन से ऑब्जेक्टफॉरस्क्रिप्टिंग (या सी ++ समतुल्य) का उपयोग कर एप्लिकेशन पर अपनी स्क्रिप्ट कॉल कर सकते हैं।

1

शायद क्यूटी अपने मामले के लिए अच्छा होगा, यह भी आप QtScript है और सी से मेरी एम्बेडेड ब्राउज़र में जे एस लागू ... मूल रूप से उपयोग करने के लिए कॉम evaluateJavaScript

0

मैं वेब पर एक महान उदाहरण पाया साथ जावास्क्रिप्ट इंजेक्षन कर सकते हैं -शिप विधियां जो आपको किसी स्क्रिप्ट ऑब्जेक्ट से DISPID प्राप्त करने देती हैं, और उसके बाद Invoke() विधि का उपयोग करती हैं। यह बहुत अच्छा काम करता है।

लेकिन यह पता चला है कि मुझे अपने जेएस कोड से सी ++ funcs भी कॉल करने की आवश्यकता है। ऐसा प्रतीत होता है कि यह संभव है, और घंटों के घंटों के बाद मुझे लगता है कि मुझे लगभग यह था - यह उपरोक्त की तरह है - आप एक COM ऑब्जेक्ट बनाते हैं, फिर इसे ब्राउज़र की स्क्रिप्ट ऑब्जेक्ट पर हुक करते हैं - लेकिन अंत में मैं बंद नहीं कर सका सौदा - मैं "लाइब्रेरी पंजीकृत नहीं" त्रुटियां प्राप्त कर रहा था। ईमानदारी से मैं इस अधिकार को करने के लिए पर्याप्त अच्छी तरह से नहीं जानता।

तो मैं, इसके बिल्ली के लिए, मैंने अपना पहला सी # ऐप बनाने की कोशिश की।लगभग 20 मिनट में मेरे पास एक ब्राउज़र के साथ एक ऐप चल रहा था जहां मैं दोनों इसके अंदर जेएस का आह्वान कर सकता था और ब्राउजर ने सी # विधियों का आह्वान किया था। Geesh। मैं इस अनुभव के बाद .NET में विश्वास करता हूं, और 90 की माइक्रोसॉफ्ट तकनीक में एक अविश्वासित अविश्वासक हूं।

0

पूर्णता के हित में, मैं वेबकिट के अपने विंडोज पोर्ट का उल्लेख करना चाहता हूं, जिसमें मैक पर वेबकिट की विभिन्न क्रॉस-लेयर विशेषताएं शामिल हैं।

मैंने कुछ example code पोस्ट किया है जो देशी WinAPI एप्लिकेशन में वेबकिट को एम्बेड करने के तरीके को दिखाता है, जावास्क्रिप्ट-> सी ++ और सी ++ -> जावास्क्रिप्ट उदाहरणों के साथ पूरा करें।

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

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