2010-10-22 23 views
31

मुझे अपने .NET 3.5 एप्लिकेशन के अंदर एक वेब ब्राउज़र चाहिए और मैं डिफ़ॉल्ट वेबब्रोसर का उपयोग नहीं करना चाहता (क्योंकि यह छोटी और धीमी लगती है)। मैंने क्रिस कैवानाघ के क्रोमियम की कोशिश की लेकिन मैं इसे काम नहीं कर सका ... क्या विकल्पों का उपयोग करना आसान है? मैं कंप्यूटर पर बहुत सरल और हल्का कुछ ढूंढ रहा हूं, अगर यह मायने रखता है तो यह एक वेबस्टोर फ्रंट होस्ट करेगा।सी # डब्ल्यूपीएफ वेब ब्राउजर वैकल्पिक

अद्यतन: 5 साल बाद, आवश्यकता फिर से उभरी। इसके बाद मैंने अपने प्रोग्राम में वेब ब्राउज़र दिखाने के लिए Awesomium का उपयोग किया, टीबीएच, मुझे याद नहीं है कि यह कैसे चला गया लेकिन मुझे यह भी वास्तविक दर्द होने की याद नहीं है।

आज हालांकि, मैं इसे फिर से उपयोग करना चाहता था और मुझे लगता है कि कोड बंद कर दिया गया था और अब यह वाणिज्यिक है। हमने कोशिश की, बाधा डाली, जिस तरह से हम चाहते थे, काम करने के लिए कोड को नहीं बदल सका, इसलिए हमने CEF और CefSharp के साथ ओपन सोर्स रूट चलाया, जिससे कोड को इतना आसान और कम वूडू (एफएफएस, एवेसोमियम यहां तक ​​कि उनके कोड को भी खराब कर दें ताकि मैं समझ नहीं पा रहा हूं कि मैं क्या गलत कर रहा हूं)।

मूल रूप से Awesomium ठंडा है यदि आप 2 9 00 डॉलर का भुगतान करना चाहते हैं और स्क्रीन प्रतिपादन की आवश्यकता नहीं है लेकिन सीईएफ आपकी जरूरतों के अनुसार कोड को बदलने में सक्षम होने के लिए बहुत अधिक शक्तिशाली है।

पीएस। हमने सीफग्लू को 5 मिनट की कोशिश की, यह तुरंत काम नहीं कर सका इसलिए हम सीफशर्प चले गए जो तुरंत काम करते थे, यह दो प्रतिस्पर्धी ओपन सोर्स फ्रेमवर्क के बारे में महान और भयानक बात है।

+1

इसका उपयोग करने के लिए आपने किस लेख का उपयोग किया? http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/ का एक बहुत अच्छा विवरण है। –

+0

Google द्वारा यहां लाया गया, बिल्कुल वही प्रश्न हैं। Umm "नियम" जिव तोड़ने के लिए धन्यवाद। चर्चा भी उस समय की सभी राय देखने के लिए बिल्कुल जरूरी है। – darbid

+0

मैं भी एक ही खोज की तलाश में एक Google खोज के माध्यम से आया था। यह एक ** वैध ** प्रोग्रामिंग प्रश्न है, विकल्पों के लिए पूछता है ताकि पहले हाथ वाले ज्ञान वाले लोग इसे ढूंढ सकें जो मेरे और @PietervanGinkel की तरह हैं और इसमें कोई संदेह नहीं है कि जो परेशान नहीं हैं एक टिप्पणी छोड़ने के लिए। –

उत्तर

12

Checkout मेरी नई परियोजना: https://github.com/chillitom/CefSharp

यह करने के लिए नेट/सी # क्रोमियम एंबेडेड फ्रेमवर्क लाता है। स्रोत, द्विआधारी और उदाहरण के लिए गितब पेज देखें।

विशेषताएं:

  • नेविगेशन के साथ एक ब्राउज़र नियंत्रण आदेश
  • INotifyPropertyChanged घटनाओं
  • ExecuteJavascript
  • रजिस्टर अपनी खुद की योजना/प्रोटोकॉल हैंडलर
  • अवरोधन संसाधन डाउनलोड
  • बाँध CLR वस्तुओं में क्रोमियम का जावास्क्रिप्ट संदर्भ।

यह अभी भी पूर्व-अल्फा चरणों में है इसलिए सभी प्रतिक्रियाओं की सराहना की गई।

+0

यह फ्रिकिन 'कमाल दिखता है। – acron

+0

क्या यह मुझे मेरी पसंद के किसी भी ब्राउज़र या क्रोम का उपयोग करने की अनुमति देता है? – Imad

+0

जेएस कोड चलाने के अलावा, डीओएम के साथ बातचीत करने का कोई आसान तरीका प्रतीत नहीं होता है? मैं उस व्यवहार्य विकल्प पर विचार नहीं करूंगा, क्षमा करें। –

0

मैं http://www.syncfusion.com/faq/windowsforms/faq_c100c.aspx

पर इस विषय के लिए पूछे जाने वाले प्रश्न के कुछ संग्रह पाया, लेकिन मैं अपने आप को प्रयास नहीं किया है।

1

मुझे यकीन नहीं है कि कई विकल्प हैं, http://webkitdotnet.sourceforge.net/ हालांकि एक है। मुझे लगता है कि यह एक WPF एक के बजाय WinForms नियंत्रण है, इसलिए इसे काम करने के लिए हुप्स के माध्यम से थोड़ा सा कूदना पड़ सकता है।

0

मुझे विश्वास है कि आप एक भौगोलिक वेब इंजन को COM ऑब्जेक्ट के रूप में एम्बेड कर सकते हैं, और इसे मानक .NET नियंत्रण के रूप में उपयोग कर सकते हैं। (फ़ायरफ़ॉक्स छिपकली का उपयोग करता है)

इस लिंक का प्रयास करें: https://developer.mozilla.org/en/Gecko

5

मैं एक सी # जीत प्रपत्र आवेदन में GeckoFX का उपयोग कर भाग्यशाली रहे हैं। यहां getting started article है, जो बताता है कि इसे प्राप्त करने और चलाने के लिए आपको किस निर्भरता की आवश्यकता होगी।

+0

मूल लिंक टूटा हुआ है। [यह एक काम करता है] (https://code.google.com/p/geckofx/downloads/list) – itsho

2

यदि आप विंडोज फॉर्म का उपयोग कर रहे हैं, तो वेबब्राउज़र नियंत्रण में निर्मित के साथ यह आसान है। यदि आप WPF का भी उपयोग कर रहे हैं, तो WPF से WebBrowser नियंत्रण का उपयोग करना ठीक है। हालांकि, डब्ल्यूपीएफ और विनफॉर्म का व्यवहार अलग है।

डब्ल्यूपीएफ में, प्रत्येक पिक्सेल WinForms की तुलना में अलग-अलग प्रदान किया जाता है। आप इस पद्धति का उपयोग एक WebBrowser नियंत्रण के शीर्ष पर सामग्री को प्रदर्शित कर सकते हैं:

http://karlshifflett.wordpress.com/2009/06/13/wpf-float-buttons-over-web-browser-control/

हालांकि, अगर आप एक कस्टम खिड़की बना सकते हैं और एक पारदर्शी खिड़की पर एक WebBrowser नियंत्रण प्रदर्शित करने के लिए चाहते हैं, तो ऐसा नहीं होता WebBrowser नियंत्रण भी दिखाएं। कुछ कामकाज हैं, लेकिन उनमें से ज्यादातर जटिल हैं। नरक, एक ने WinForms के पीछे नकली WPF UI को चित्रित करने की भी सिफारिश की। खराब युग्मित कोड और अधिक sphagetti।

मैं पूरे दिन यह कोशिश कर रहा हूं। ये सभी संसाधन हैं जिन पर मैंने एकत्र किया था। आपके लिए अगला कार्य, उन्हें संकलित करना और चीजों को समझना है। यह आपको मेरे जैसा ही नाव पर रखता है।

WPF WebBrowser (3.5 SP1) Always on top - other suggestion to display HTML in WPF

http://blogs.msdn.com/b/changov/archive/2009/01/19/webbrowser-control-on-transparent-wpf-window.aspx

http://msdn.microsoft.com/en-us/library/ms742522.aspx

http://www.neowin.net/forum/topic/646970-c%23-wpf-window-with-transparency-makes-windowsformshost-disappear/

वर्तमान में, मैं WebBrowser नियंत्रण पर छोड़ दिया है और Awesomium परियोजना के लिए जा रहा हूँ। इसे काम करने की कोशिश करना एक और परेशानी है क्योंकि कोड अलग-अलग .NET संस्करणों पर फैले हुए हैं। यदि आप में से कोई भी भाग्य है, तो कृपया इसे यहां साझा करें।

आप वेब ब्राउज़र के लिए नियंत्रणों का उपयोग करने के लिए आसान इस परियोजना को भी देख सकते हैं।

http://www.khrona.com/products/awesomium/

एक बार फिर, WinForms WebBrowser नियंत्रण के साथ कोई समस्या नहीं है, WPF असंख्य लोगों को है और एमएस बातें किसी भी जल्दी ठीक होता के लिए उत्सुक नहीं है।

0

http://code.google.com/p/chromiumembedded/ प्रोजेक्ट देखें जो विभिन्न यूआई ढांचे में क्रोमियम ब्राउज़र (वेबकिट) को एम्बेड करने के लिए एक ढांचा प्रदान करता है।

DotNetBrowser पुस्तकालय पर एक नजर डालें एक .NET/मोनो कार्यान्वयन https://bitbucket.org/xilium/xilium.cefglue

2

के लिए एक लिंक नहीं है। यह क्रोमियम आधारित WPF और WinForms ब्राउज़र नियंत्रण प्रदान करता है, जो .NET अनुप्रयोग में एम्बेड करना काफी आसान है। यह एचटीएमएल 5, CSS3 और जावास्क्रिप्ट सहित सभी आधुनिक वेब मानकों का समर्थन करता है। प्रस्तुत पृष्ठ बिल्कुल Google क्रोम जैसा दिखता है।

लाइब्रेरी क्रोमियम की बहु-प्रक्रिया आर्किटेक्चर को प्राप्त करती है - प्रत्येक वेब पेज को एक अलग क्रोमियम प्रक्रिया में प्रस्तुत किया जाता है, और प्लगइन क्रैश या वेब पेज पर किसी भी अन्य अप्रत्याशित त्रुटि के बाद भी एप्लिकेशन काम करना जारी रखेगा।

यहां कुछ अन्य उपयोगी विशेषताएं दी गई हैं, जो डॉटनेट ब्रोसर द्वारा प्रदान की गई हैं: लोड घटनाओं को सुनना, नेटवर्क गतिविधि को संभालना, प्रॉक्सी कॉन्फ़िगर करना, उपयोगकर्ता क्रियाओं का अनुकरण करना, कुकीज़ के साथ काम करना, एक्सेस करना और संशोधित करना संभव है, डोम ईवेंट सुनें, कॉल करें .NET से जावास्क्रिप्ट और इसके विपरीत, वेब पेज पर वेब कैमरा और माइक्रोफ़ोन का उपयोग करें, वेबआरटीसी-आधारित संचार सेट करें, और more

अधिक जानकारी के लिए API Reference देखें।

नीचे कोड स्निपेट को दर्शाता है एक BrowserView का URL बनाने के लिए कैसे करने के लिए, एक प्रपत्र में एम्बेड करते हैं, और लोड: एक बार जब आप उदाहरण चलाने

using System.Windows.Forms; 
using DotNetBrowser; 
using DotNetBrowser.WinForms; 

namespace WinForms.DotNetBrowser 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      BrowserView browserView = new WinFormsBrowserView(); 
      Controls.Add((Control) browserView); 
      browserView.Browser.LoadURL("http://www.youtube.com"); 
     } 
    } 
} 

ऊपर आप निम्नलिखित उत्पादन प्राप्त होगा:

enter image description here

पुस्तकालय वाणिज्यिक है, हालांकि यह ओपन-सोर्स और अकादमिक परियोजनाओं में उपयोग के लिए स्वतंत्र है। वाणिज्यिक लाइसेंस में विभिन्न टीम आकारों के लिए समर्थन पैकेज शामिल हैं। पुस्तकालय के स्रोत कोड को खरीदना भी संभव है।

अपने स्वयं के पृष्ठ के अलावा घटक NuGet package और VSIX package के रूप में विजुअल स्टूडियो मार्केटप्लेस में उपलब्ध है।

+0

क्या डॉटनेट ब्रॉसर विंडोज फोन 8 पर काम करता है? – davehenry

+0

डॉटनेट ब्रोसर अब के लिए केवल डेस्कटॉप विंडोज प्लेटफॉर्म का समर्थन करता है। – Vladimir

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