2009-05-20 6 views
5

http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=FAQ_CompileOnePermutationGWT मॉड्यूल एक्सएमएल - फिर से परिभाषित और एक से अधिक उपयोगकर्ता एजेंट

का उपयोग लेख मैं मैं संकलक में तेजी लाने, लेकिन लक्ष्य उपयोगकर्ता एजेंट को निर्दिष्ट कर सकते हैं सीखा में करने के लिए कैसे। समस्या मैं एक से अधिक उपयोगकर्ता एजेंट कैसे निर्दिष्ट कर सकता हूं? मान लीजिए अपने आवेदन IE6 और FF3

<set-property name="user.agent" value="ie6,geck1_8" /> 

काम नहीं करता है का समर्थन करता है - मैं XML पार्सिंग त्रुटि मिली:

[ERROR] Invalid property value 'ie6,gecko1_8' 

वहाँ में एक से अधिक विशिष्ट उपयोगकर्ता एजेंट निर्दिष्ट करने के लिए कोई तरीका है मैं सोच रहा हूँ मॉड्यूल एक्सएमएल फ़ाइल?

+0

खराब लिंक, मुख्य Google प्रलेखन रीडर पृष्ठ पर ले जाता है। –

+0

एक खोज के भीतर इस प्रश्न पर ठोकर खाई। एक संकेत के रूप में: सेट-प्रॉपर्टी में एक टाइपो है, "i6, geck ** o ** 1_8" – ArcTanH

उत्तर

1

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

6

GWT 1.6 में काम करता है, अपने * .gwt.xml फ़ाइल:

<module rename-to="moduleName"> 
     <!-- blah blah --> 
     <set-property name="user.agent" value="ie6,gecko,gecko1_8" /> 
     <!-- generate perms for IE and firefox only --> 
</module> 
+0

होना चाहिए, क्या यह केवल आईई 6 है, या यह आईई के सभी संस्करणों के लिए जेएस संकलित करेगा? –

+1

यह केवल आईई 6 है। अन्य आईई के लिए परिभाषित अन्य स्थिरांक हैं: IE8, IE9, IE10। जीडब्ल्यूटी स्रोत देखें: https://gwt.googlesource.com/gwt/+/master/user/src/com/google/gwt/useragent/UserAgent.gwt.xml – Bdoserror

4

आदेश तेजी से किसी भी आवेदन, आप दो लक्ष्यों की आवश्यकता होगी तैनात करने के लिए है; इंजन के लिए एक बार आपके होस्ट किए गए मोड {फ़ायरफ़ॉक्स/लिनक्स, सफारी/मैक, आईई 6/विन} पर तैनात होते हैं, और आपके चुस्त ब्राउज़र के लिए एक जो आपको रीयल-टाइम {फ़ायरफ़ॉक्स + फ़ायरबग} में सीएसएस बनाने देता है।

Linux: <set-property name="user.agent" value="gecko1_8,gecko"/> 
Mac: <set-property name="user.agent" value="gecko1_8,safari"/> 
...etc... 

यह केवल GWT> = 1.6 है!

पुरानी gwt परियोजनाओं के लिए, आपको com/google/gwt/user/UserAgent.gwt.xml फ़ाइल को सुपर-सोर्स करना होगा ... इसे उस स्रोत स्थान पर रखें जो आपके gwt - *। Jar से पहले शामिल है classpath। असल में, आप उस फ़ाइल को मूल के समान पैकेज में एक नए में कॉपी कर सकते हैं, और सीडीएटीए जावास्क्रिप्ट ब्लॉक को संपादित कर सकते हैं जो वास्तविक user.agent मान देता है। आप जो भी पसंद करते हैं उसके साथ खेलो, लेकिन अपने उपयोगकर्ता के साथ बहुत पागल न हो जाएं। संपत्ति, क्योंकि यह भविष्य में निर्माण में IE8 के लिए बदल जाएगा।

ब्राउज़र यानी लक्षित करने के लिए, अपनी खुद की यानी .वर्जन संपत्ति बनाएं, और उपयोगकर्ता के विभिन्न संस्करणों को लक्षित करने के लिए UserAgent.gwt.xml में प्रॉपर्टी-प्रदाता की प्रतिलिपि को ट्विक करें। बनाता है और अन्य मूर्खतापूर्ण कबाड़ कि इस्तेमाल किया जा कभी नहीं होगा

<all> 
    <when-property-is name="user.agent" value="ie6"/> 
    <any> 
    <when-property-is name="ie.version" value="ie7"/> 
    <when-property-is name="ie.version" value="ie8"/> 
    </any> 
</all> 

या आप IE7 + छिपकली/सफारी मिल जाएगा: बस यह सुनिश्चित करें कि जब आप आस्थगित बाध्यकारी आप करते हैं के लिए कस्टम गुण का उपयोग कर सकते हैं।

नोट: किसी प्रॉपर्टी-प्रदाता में कोई भी कोड .nocache.js में लोड होता है, और .cache.js पेलोड डाउनलोड होने पर छवियों/सीएसएस को प्रीलोड करने के लिए उपयोगी हो सकता है।
बस var __cached = नई छवि जोड़ें ('संकलित छवि के लिए यूआरएल/जिसे आप लोड करना चाहते हैं');

6
क्रोम की तरह वेबकिट आधारित ब्राउज़र के लिए

, उपयोगकर्ता एजेंट

7

जब GWT2.4 में gecko को user.agent मान सेट मैं एक ऐसी ही त्रुटि संदेश मिला है, के रूप में "सफारी" का उपयोग करें। तो मैंने चारों ओर देखा और पाया कि gwt कोड संभावित मानों को परिभाषित करता है।

यदि आप com.google.gwt.user.UserAgent.gwt.xml पर gwt-user.jar में देखते हैं तो आप जीडब्ल्यूटी के संस्करण के लिए संभावित मान देख सकते हैं।

जीडब्ल्यूटी 2 के लिए।

<!-- Browser-sensitive code should use the 'user.agent' property --> 
    <define-property name="user.agent" values="ie6" /> 
    <extend-property name="user.agent" values="ie8" /> 
    <extend-property name="user.agent" values="gecko1_8" /> 
    <extend-property name="user.agent" values="safari" /> 
    <extend-property name="user.agent" values="opera" /> 
    <extend-property name="user.agent" values="ie9" fallback-value="ie8" /> 
    <property-provider name="user.agent" generator="com.google.gwt.user.rebind.UserAgentPropertyGenerator"/> 

इसलिए छिपकली मेरे मामले में user.agent लिए एक मान्य मान नहीं है, और अगर मैं का उपयोग gecko1_8 यह फ़ायरफ़ॉक्स ठीक के लिए संकलित: 4, इस मुझे क्या मिला है।

+0

मैंने जीडब्ल्यूटी 2.7.0 में देखा है कि userAgent.gwt.xml अब gwt-user.jar में com.google.gwt.useragent पर है – AnthonyLerpiniere

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