2012-02-29 4 views
14

मैंने कई लेख और स्टैक ओवरफ्लो प्रश्न पढ़े हैं लेकिन मुझे लगता है कि यह काम नहीं कर रहा है।एक एचटीएमएल 5 ऐप पैक करें और इसे डेस्कटॉप पर तैनात करें

मैं एक ग्राहक के लिए कुछ उत्पाद जानकारी वितरित करना चाहता हूं जो सीडी या यूएसबी स्टिक पर भेज दिया जाएगा। उन दिनों में मैंने फ्लैश के साथ ऐसा किया था। क्योंकि फ़्लैश फ्लैश प्रोजेक्टर नामक EXE में संकलित हो सकता है और इंस्टॉलेशन के बिना मेरी फ्लैश सामग्री चला सकता है।

अब मैं एचटीएमएल 5 को स्पिन देना चाहता हूं। और मुझे सीडी पर सबकुछ पैक करने का एक तरीका चाहिए जिससे इसे बिना इंस्टॉलेशन के हर जगह चलाया जा सके।

मैंने कुछ सुना है कि मैं क्रोमियम संकलित कर सकता हूं और उसे सी ++ एप्लिकेशन में एम्बेड कर सकता हूं। (http://code.google.com/p/chromiumembedded/) मैं QTWebkit के साथ QT का उपयोग कर सकता था। (http://developer.qt.nokia.com/doc/qt-4.8/qtwebkit.html) मैं वेबकिट संकलित कर सकता हूं और इसे एक सी ++ एप्लिकेशन में एम्बेड कर सकता हूं ... (http://www.webkit.org/)

उदाहरण बड़ा करने के लिए कर रहे हैं और मैं किसी भी सी ++ कौशल = (

तो फिर वहाँ (http://mozillalabs.com/chromeless) और मोज़िला chromeless जैसी परियोजनाओं (बर्कीलियम (हैं की जरूरत नहीं है https: // GitHub .com/sirikata/बर्कीलियम)

chromeless साथ

मेरी JQuery जावास्क्रिप्ट काम नहीं किया और बर्कीलियम ... मैं संकलित करने के लिए नहीं मिला ...

मैंके लिए कोई बजट नहीं हैया अन्य भुगतान/वाणिज्यिक विकल्प ... (फ्लैश/एयर और सिल्वरलाइट भी एक विकल्प नहीं हैं)। चूंकि सामग्री को प्लगइन के उपयोग के बिना वेब सर्वर पर भी तैनात किया जाना चाहिए ...

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

तो कोई ब्राउज़र adressbar सिर्फ पिक index.html और बाकी सब कुछ एप्लिकेशन द्वारा नियंत्रित किया जाता ... कुछ पूर्ण स्क्रीन की तरह और बंद अच्छा होगा ...

दुर्भाग्य से मैं की स्थापित ब्राउज़र पर भरोसा नहीं कर सकते "ग्राहक ओएस" क्योंकि लक्षित समूह बड़ा है और मैं पुराने ब्राउज़र की बहुत उम्मीद करता हूं।

क्या कोई मुझे निर्देश दे सकता है कि एक ऐप को "आसानी से" कैसे संकलित किया जाए जो मेरी वेब ऐप सामग्री को सुरक्षा चेतावनी आदि के बिना सीडी से डेस्कटॉप पर चल रहा है?

या क्या कोई पूर्व-संकलित पैकेज है जिसका मैं उपयोग कर सकता हूं?

+0

क्या सब कुछ _need_ को एक नए निष्पादन योग्य में संकलित किया गया है? आप सिर्फ एक मुफ्त ब्राउज़र नहीं ले सकते हैं और इसे सीडी पर एचटीएमएल फाइलों के साथ रख सकते हैं? –

+0

हां, लेकिन एड्रेसबार और पूर्ण ब्राउज़र क्षमताओं को केवल प्रतिपादन और जावास्क्रिप्ट इंजन/शायद नेटवर्क स्टैक नहीं चाहते हैं। लेकिन कुछ भी संकलित करने की आवश्यकता नहीं है, यह एक वेबप्रोजेक्ट होगा जैसे आप इसे सर्वर पर तैनात करते हैं ... –

+3

मुझे अभी भी लगता है कि कियोस्क मोड में एक नियमित ब्राउज़र होगा। –

उत्तर

2

टिप्पणी में उल्लेख किया है किसी के रूप में, तो आप इस के अनुसार xulrunner उपयोग कर सकते हैं: https://developer.mozilla.org/en/Getting_started_with_XULRunner तुम सिर्फ डाउनलोड xulrunner, यह एक फ़ोल्डर में अनज़िप, कॉन्फ़िगर और यह autorun.inf या ऐसा ही कुछ में शुरू करते हैं। कोई संकलन आवश्यक नहीं है (मुझे लगता है कि आपको इसे विंडोज़ पर पेश करने की ज़रूरत है, लेकिन अन्य प्लेटफॉर्म भी एक समस्या नहीं होनी चाहिए)।

5

मैंने Awesomium (यह सी ++ और 40 एमबी +) PyWebKit भी कोशिश की (काम किया लेकिन मेरे svg mousemove-listeners नहीं किया) इसलिए cefpython और pyinstaller का उपयोग कर समाप्त हो गया।

यहां मैंने "एक-क्लिक-विंडोज-वेब-ऐप-निष्पादन योग्य" .exe प्राप्त करने के लिए अभी किया है।

  • cefpython डाउनलोड किया है, यह क्रोमियम के अंदर (20MB)
  • रन "अजगर cefsimple.py" अगर यह काम कर रहा है देखने के लिए (यह होना चाहिए)
  • के साथ एक संकलित dll के साथ आता है अब डाउनलोड pyinstaller
  • खोल/utils MakeSpec.py और Build.py एक नीचे
  • 012 फ़ोल्डर अगर कुछ फ़ोल्डर में
  • आप के लिए cefpython के सभी फ़ाइलों की प्रतिलिपि नव pyinstaller से pyinstaller-फ़ोल्डर बनाया
  • प्रतिलिपि
  • रन "MakeSpec.py cefsimple.py" बनाया
  • के लिए एक cefsimple.spec फ़ाइल बनाने के लिए आप "Build.py cefsimple.spec" चलाने के लिए प्रयास करते हैं तो यदि किसी फ़ोल्डर जिले
  • कहा जाता है पर फ़ाइलों की प्रतिलिपि जाएगा यदि आप, exe यह काम नहीं करेगा चलाने क्योंकि कुछ DLLs और एक आइकन याद कर रहे हैं
  • कल्पना-फ़ाइल बदलकर DLLs जोड़ सकते हैं
  • (मैं इसे बाद में पाठ में डाल) आप इसे फिर से निर्माण किया जाता है, यह आइकन और अन्य सभी को फ़ोल्डर में कॉपी करेगा ताकि एक्सई चल सके (आप वास्तविक एम्बेडेड क्रोमियम फ्रेम में cefsimple.html देखेंगे)
  • अब आप ई के साथ खेल सकते हैं mbedding या pyhton-code आपके http-link को ठीक करने के लिए और आपको एक "एक-क्लिक-विंडोज-वेब-ऐप-निष्पादन योग्य" मिलेगा :-) (देखें - pyinstaller डॉक्स में --onefile विकल्प)

cefsimple.spec:

# -*- mode: python -*- 
a = Analysis(['cefsimple.py'], 
      pathex=['c:\\pyinstaller-2.0'], 
      hiddenimports=[], 
      hookspath=None) 
pyz = PYZ(a.pure) 
exe = EXE(pyz, 
      a.scripts, 
      a.binaries, 
      [('icudt.dll', 'icudt.dll', 'BINARY')], 
       [('avcodec-54.dll', 'avcodec-54.dll', 'BINARY')], 
       [('libEGL.dll', 'libEGL.dll', 'BINARY')], 
       [('avformat-54.dll', 'avformat-54.dll', 'BINARY')], 
       [('avutil-51.dll', 'avutil-51.dll', 'BINARY')], 
       [('d3dcompiler_43.dll', 'd3dcompiler_43.dll', 'BINARY')], 
       [('d3dx9_43.dll', 'd3dx9_43.dll', 'BINARY')], 
       [('libGLESv2.dll', 'libGLESv2.dll', 'BINARY')], 
       [('locales\\en-US.pak', 'locales\\en-US.pak', 'DATA')], 
       [('icon.ico', 'icon.ico', 'BINARY')], 
      a.zipfiles, 
      a.datas, 
      name=os.path.join('dist', 'cefsimple.exe'), 
      debug=False, 
      strip=None, 
      upx=True, 
      console=False, icon='icon.ico') 
app = BUNDLE(exe, 
      name=os.path.join('dist', 'cefsimple.exe.app')) 

यदि यह किसी भी विंडोज़ 2000 +, कोई अजगर, कोई व्यवस्था पुस्तकालयों, बिना किसी अतिरिक्त DLLs और न ही माउस की जरूरत पर चलना चाहिए।

आप Windows 7 64 बिट पर इसे बनाने हैं, तो यह 32 बिट सिस्टम

पर काम नहीं करेगा आप WindowsXP 32 बिट पर इसे बनाने यदि यह हर जगह काम करता है। शराब में भी। लेकिन किसी भी तरह से मैं टाइटलबार के लिए exe से आइकन नहीं मिल सका। इसे बाहरी से लोड करना था (cefwindow.py में कोड)।

विवरण के लिए मुझसे पूछें, जबकि यह अभी भी ताजा है!

संपादित करें:

सक्रिय करने के लिए स्थानीय json अनुरोध: # BrowserSettings, देखें: http://code.google.com/p/cefpython/wiki/BrowserSettings browserSettings = dict() browserSettings [ "universal_access_from_file_urls_allowed"] = सच browserSettings [ "file_access_from_file_urls_allowed"] = सच

+0

आपके उत्तर के लिए धन्यवाद दिलचस्प लगता है। क्या यह एक सेटअप/इंस्टॉलर या रनटाइम बनाता है जो किसी निर्भरता के साथ निष्पादित करता है? क्योंकि मैं उपयोगकर्ता को कुछ इंस्टॉल नहीं करना चाहता ... –

+0

आपके पास केवल exe है जो कुछ सापेक्ष फ़ोल्डर को इंगित करता है जहां आपका index.html झूठ बोलता है। इसलिए यह exe फ़ाइल और आपकी वेबसाइट है और यह किसी भी चीज़ से पूरी तरह से स्वतंत्र है। बस exe पर क्लिक करें और यह चल रहा है। – RedRoosterMobile

+0

यदि आप सभी एचटीएमएल/सीएसएस/के साथ एक exe नहीं था .. शामिल है आप iexpress.exe के साथ खेल सकते हैं। यह सभी विंडोज़ ऑपरेटिंग सिस्टम का हिस्सा है, हैकर्स के बीच बहुत प्रसिद्ध है और आकर्षक काम करता है। अन्यथा आप अपनी spec फ़ाइल को बताने की आदत रखते हैं जहां सभी फाइलें हैं।इससे भ्रम पैदा हो सकता है। – RedRoosterMobile

8

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

https://github.com/rogerwang/node-webkit

+0

क्या नोड-वेबकिट में node.js को कमांड लाइन तर्क भेजना संभव है (ताकि आप 'process.argv' का उपयोग कर कमांड लाइन तर्क प्राप्त कर सकें?) –

+0

@ एंडरसनग्रीन: हां। अधिक जानकारी के लिए, https://github.com/rogerwang/node-webkit/wiki/Handling-files-and-arguments – Tapio

4

एक अच्छा अवलोकन के लिए, क्लिंट बेरी द्वारा इस review article की जाँच करें। वह टाइडएसडीके, एपीजेएस, नोड-वेबकिट, सेन्चा डेस्कटॉप और ब्रैकेट शैल को कवर करता है, और प्रत्येक समाधान के पेशेवरों और विपक्ष को सूचीबद्ध करता है।

संपादित करें: समीक्षा पढ़ने के बाद, मैं नोड-वेबकिट अपने ही परियोजना के लिए चुना है, और यह बहुत अच्छा काम करता है! किसी भी विशिष्ट प्रतिमान के अनुसार आपको ऐप बनाने की आवश्यकता नहीं है। मैंने बस अपना मानक AngularJS वेब ऐप लिया क्योंकि यह आवश्यक मैनिफेस्ट फ़ाइल जोड़ा गया था, और इसे विंडोज और ओएसएक्स के लिए बनाया गया था।

1

मैंने HTML5 गेम डेवलपर्स के लिए एक आवेदन किया है, यदि आप अपने एचटीएमएल 5 गेम या एप्लिकेशंस जैसे विंडोज़ पर एप्स चलाने के लिए, एचटीएमएल 5 सुविधाओं तक पहुंचने के लिए होस्टिंग या मैन्युअल रूप से स्थानीय सर्वर चलाने की आवश्यकता नहीं है।

WinApps Jx बिल्डर एक आवेदन है कि आप खिड़कियों कि विंडोज ओएस पर मूल निवासी की तरह चलाने के लिए अपने एचटीएमएल 5, जावा स्क्रिप्ट, एक निष्पादन योग्य अनुप्रयोग में सीएसएस पैक करने के लिए अनुमति देते हैं। अब से आप केवल अपने डेस्कटॉप पर एचटीएमएल 5 वेबसाइटों, एप्लिकेशन, गेम चलाएंगे, केवल डबल क्लिक के साथ, और WinApps JX बाकी का ख्याल रखेगा।

लेकिन आप अपने मशीन पर Google Chrome Frame स्थापित करने की आवश्यकता है:

google chrome frame

- WinApps Jx -

+0

देखें जो वास्तव में दिए गए प्रश्न का उत्तर नहीं देता है। –

+0

हां क्षमा करें, मेरा मतलब है कि मैं इस काम को करने के लिए आवेदन प्रदान करूंगा, बहुत जल्द आज रात। –

+0

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

1

आप अपने सी (WinAPI) कार्यक्रम IWebBrowser2 का उपयोग करने में ब्राउज़र नियंत्रण एम्बेड कर सकते हैं।

http://github.com/dns/WinAPI-Embed-Browser/releases

मैं GitHub पर एक परियोजना एकल EXE फाइल में कई एचटीएमएल एप्लिकेशन पैक बनाने के लिए बनाया है। पथ के रूप में res://programname.exe/test.html:

EXE/DLL संसाधनों के उपयोग से html फ़ाइलें एक्सेस करने के लिए।

तुम भी तो बस अपनी HTML ऐप्स की सामग्री को दिखा रहा है, या यहाँ तक कि फुलस्क्रीन पर चल रहा है खिड़की सीमा & छुपा सकते हैं। यदि आप इंटरैक्टिव सीडी बनाना चाहते हैं तो यह बहुत उपयोगी है।

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