2013-02-11 73 views
11

पर जीटीके-आधारित मोनो वेबब्राउज़र मैं विंडोज पर जीटीके का उपयोग कर मोनो वेबब्राउज़र का उपयोग करने के सबसे सरल उदाहरण के साथ आने का प्रयास कर रहा हूं। Windows.Forms संस्करण ठीक काम करता है (डिफ़ॉल्ट यदि आप Platform.Gtk निर्दिष्ट नहीं करते हैं), लेकिन मुझे मौजूदा जीटीके क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन में एकीकृत करने की आवश्यकता है।विंडोज

यहाँ एक सरल उदाहरण है:

public static void Main (string[] args) 
{ 
    Gtk.Application.Init(); 
    Gtk.Window win = new Gtk.Window ("Title"); 
    Mono.WebBrowser.IWebBrowser browser = 
     Mono.WebBrowser.Manager.GetNewInstance(Mono.WebBrowser.Platform.Gtk); 
    browser.Load(win.Handle, 500, 250); 
    win.ShowAll(); 
    GLib.Timeout.Add(500, delegate { 
     browser.Navigation.Go ("http://google.com/"); 
     return false; 
    }); 
    Gtk.Application.Run(); 
} 

जो, संकलित चलाता है, और browser.Initialized सच है। लेकिन यह एक Gtk.Window (या किसी भी अन्य Gtk.widget मैंने कोशिश की है) में प्रस्तुत नहीं करता है। ब्राउज़र वास्तव में खुद को प्रस्तुत करने के लिए क्या ट्रिगर करता है? ऐसा हो सकता है कि मैं इस को सीधे एक विंडो में प्रस्तुत नहीं कर सकता (मैंने मोनो-डॉक्ब्रोसर [1] स्रोत, पर देखा है और एक अधिक जटिल उदाहरण है, लेकिन यह या तो प्रस्तुत नहीं करता है)।

मैंने वेबकिट-तेज देखा है, लेकिन इसे जीटीके के साथ विंडोज या मैक पर काम करने के लिए नहीं मिल सकता है।

[1] https://github.com/mono/mono-tools/tree/master/docbrowser

+0

हाय, डौग! मुझे आपकी समस्या बिल्कुल ठीक है - मुझे एक क्रॉस-प्लेटफ़ॉर्म मोनो जीटीके # वेब ब्राउज़र ([उपयोगकर्ता इंटरफ़ेस के लिए] की आवश्यकता है (http://stackoverflow.com/questions/35518973/gtk-html-viewer-for-ui))। तो आखिरकार आपने क्या चुना? सादर! –

+0

मैंने छोड़ दिया। यदि पिछले 5 सालों में चीजें नहीं बदली हैं, तो शायद अलग-अलग प्लेटफार्मों पर अलग-अलग समाधान होने का जवाब हो सकता है। –

उत्तर

5

मुझे याद नहीं कर सकते हैं वास्तव में, जहां है, लेकिन मैंने कहीं पढ़ा है कि Mono.WebBrowser नाम स्थान किसी भी तरह WebkitSharp के पक्ष में पदावनत किया गया था।

मैंने पहले ऐसा कुछ करने की कोशिश की, लेकिन मैंने अपने लिनक्स वितरण से webkit-sharp.dll का उपयोग किया। इसे संकलित करने और खिड़कियों पर चलाने की कोशिश की लेकिन यह काम नहीं किया। तो यह पता चला कि मैं वेबकिट-gtk डीएलएल खो रहा था, जो वास्तव में पूरी चीज प्रस्तुत करता है (वेबकिट-तेज सिर्फ गोंद-कोड है, यदि आप करेंगे तो एक रैपर)

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

+0

ठीक है, यह वादा करता है! –

+0

मैंने ईमेल के माध्यम से आपसे संपर्क करने का प्रयास किया है; कृपया ईमेल अग्रेषित करें। धन्यवाद! –

+0

ऐसा लगता है कि मुझे मूल लेखकों से संपर्क करने की आवश्यकता होगी और देखें कि मैं एक साथ क्या टुकड़ा कर सकता हूं। धन्यवाद! –

0

Gluezilla मर चुका है (नए फ़ायरफ़ॉक्स के साथ काम नहीं करता है) और Webkit-sharp अभी तक परिपक्व नहीं है (तकनीकी रूप से मृत नहीं है, लेकिन मैंने सुना है कि परिणाम ज्यादातर वही है)। मुझे अन्य विकल्पों के बारे में पता नहीं है।

+0

ठीक है, जो मैंने देखा है, कम से कम एक क्रॉस-प्लेटफार्म समाधान के रूप में। लिनक्स पर वेबकिट-तेज काम करता है। –

0

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

0

मैं आपको नहीं बता सकता कि आपका कोड क्यों काम नहीं करता है, लेकिन मैं आपको क्रोमियम के एक हैकड स्रोत Awesomium का उपयोग करने का सुझाव दे सकता हूं जिसे आप या तो C++ या .NET अनुप्रयोग में एकीकृत कर सकते हैं।

उनकी विकी बहुत अपूर्ण है लेकिन एसडीके डाउनलोड में इसका उपयोग करने के तरीके पर कई उदाहरण हैं।

Awesomium: http://awesomium.com/ विकी: http://wiki.awesomium.net/

+0

ऐसा प्रतीत होता है कि यह केवल Winforms और WPF है। मुझे जीटीके चाहिए। –

+0

यह ओपनजीएल पर भी चलता है, आपको बस घटनाओं को लपेटने और पिक्सेल बफर को अपनी जीटीके विंडो में कॉपी करने की आवश्यकता है। – greenboxal

+0

"जस्ट" घटनाओं को लपेटकर और पिक्सेल बफर की प्रतिलिपि बनाना तुच्छ नहीं लगता है। लेकिन, वास्तव में, ऐसा लगता है कि मोनो डॉकब्रोसर क्या करता है। लेकिन मैं इसे काम नहीं कर सकता; यह प्रदर्शित नहीं करता है। –