2009-08-09 13 views
5

मुझे एचटीएमएल/सीएसएस/जावास्क्रिप्ट का उपयोग कर मेरे आवेदन जीयूआई को सी ++ बैकएंड सभी क्रॉस प्लेटफ़ॉर्म के साथ बनाने की आवश्यकता है। मैंने QtWebKit, XULRunner और मोज़िला के साथ सरल परीक्षण किए।सी ++ में उपयोग किए जाने वाले सबसे छोटे एम्बेडेड ब्राउज़र क्या हैं?

सरल टेस्ट से अच्छी तरह से मुझे कुछ बल्लेबाज़ करता है और यह ब्राउज़र libs/framework के तैनाती आकार है। यह बड़ा है: 8 एमबी और ऊपर।

क्या कोई छोटा सा एम्बेडेड ब्राउज़र है जो मुझे याद आ रहा है?

विंडोज़ पर आईई नियंत्रण का उपयोग करें और लिनक्स पर मोज़िला का उपयोग करें (जो शायद एक गतिशील पुस्तकालय है कि आप लोड कर सकते हैं के रूप में उपलब्ध हो जाएगा):

+2

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

उत्तर

3

मुझे लगता है कि dillo को सी कॉलिंग सम्मेलन की आवश्यकता है, लेकिन यह आपकी आवश्यकताओं के लिए कर सकता है। कोई जावास्क्रिप्ट या फ़्लैश, या या, लेकिन यह सीएसएस का समर्थन करता है।

फिर से प्रश्न पढ़ने पर, मुझे लगता है कि आपको जावास्क्रिप्ट की आवश्यकता है, जो डिलो वर्तमान में समर्थन नहीं करता है। माफ़ कीजिये।

1

मैं एक सुझाव है कि समस्या का समाधान हो सकता है है।

यह आपके ऐप को सबसे छोटा कर देगा, लेकिन आपको कोड से आसानी से निपटने के लिए आईई/मोज़िला के चारों ओर एक रैपर बनाना होगा और आपके एचटीएमएल/सीएसएस/जेएस को क्रॉस-ब्राउजर होना होगा।

3

मुझे अन्य प्लेटफ़ॉर्म के बारे में पता नहीं है, लेकिन विंडोज़ पर ऐसा करने का सबसे छोटा तरीका वेब ब्राउज़र नियंत्रण में सिस्टम का उपयोग कर है। यह COM पर आधारित है, जो प्रोग्राम के लिए काफी जटिल हो सकता है। कोड के बाद आप एक तरह के एक जानवर हो जाता है:

HWND htmlWindow = ::CreateWindowExA(
    dwExStyle, 
    ATLAXWIN_CLASS, 
    "about:blank", 
    dwStyle, 
    x, y, w, h, 
    hwndParent, 
    NULL, 
    hInstance, 
    NULL 
); 

CAxWindow2 helperWindow; 
helperWindow.Attach(htmlWindow); 
CComPtr<IWebBrowser2> theWebBrowserControl; 
HRESULT hr = helperWindow.QueryControl(&theWebBrowserControl); 

ऊपर कोड नमूना दर्दनाक इस COM बात समझने की कोशिश कर के कई सप्ताह का फल है। खैर, आशा है कि आपको इसे किसी भी तरह उपयोगी लगेगा ...

नोट: ऊपर नमूना एटीएल (एमएफसी नहीं) पर निर्भर करता है।

0

एक और दृष्टिकोण, पूरी तरह से अनचाहे: एक साधारण वेब-सर्वर शामिल करें (उदा। बूस्ट :: असियो में इस कार्यक्रम पर एक ट्यूटोरियल/उदाहरण है), शायद एक अलग थ्रेड में। फिर उपयोगकर्ता को वेब ब्राउजर की सर्फ वेब सर्वर पर सर्फ करने दें, बस आपके प्रोग्राम द्वारा शुरू किया गया।

0

8 एमबी: आप फ़ाइल (या फ्लैश स्टोरेज) आकार के बारे में बात कर रहे हैं? मैं उम्मीद करता हूं कि ब्राउजर की परिचालन मेमोरी आवश्यकताएं कोड बेस की तुलना में अधिक महत्वपूर्ण हों .... लेकिन मुझे यह आपके प्रश्न में नहीं दिख रहा है। चूंकि आप Qtwebkit का जिक्र कर रहे हैं, क्या आपके पास आपके उत्पाद में अन्य क्यूटी पुस्तकालय सक्रिय हैं?

आपकी आवश्यकताओं पर बहुत निर्भर करता है; संगतता, सीएसएस, स्क्रीन आकार, प्रदर्शन के बारे में कैसे? मुफ्त सॉफ्टवेयर या लाइसेंस प्राप्त? कौन सी लाइसेंस शर्तों (यानी जीपीएल या निश्चित रूप से नहीं)। क्या आप अधिक विशिष्ट हो सकते हैं?

एक ब्राउज़र जो अच्छी तरह से प्रदर्शन कर रहा है और मानक अनुपालन करता है, आसानी से 16+ एमबीटीई खर्च करेगा। मुझे ओपेरा मिला, विशेष रूप से opera devices बहुत रोचक; यह बहुत मानक है, अनुकूलन और निष्पादक, हालांकि इसका स्मृति उपयोग 16-32 एमबीटी क्षेत्र में भी है।

0

Servo का उपयोग करने पर विचार करें।

इसे भी एम्बेड किया जा सकता है।