2012-06-08 15 views
14

के लिए कोई बेहतर वेबदृश्य है क्या एंड्रॉइड के लिए एक बेहतर वेबव्यू है? Google के अपने दस्तावेज़ों का उल्लेख वेबव्यू ऑब्जेक्ट पर भरोसा नहीं करना है।क्या एंड्रॉइड

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

यह jQuery मोबाइल कार्यान्वयन में स्पष्ट है, या वेब ऐप्स के लिए इसी तरह से सांचा स्पर्श कार्यान्वयन। एंड्रॉइड संस्करण में मंदी, मुद्दों को प्रस्तुत करने और खराब उपयोगकर्ता अनुभव का सामना करना पड़ता है, जहां अन्य मोबाइल डिवाइस - जैसे एक आईफोन - इसे ठीक से चलाएगा। वे दोनों वेबकिट का उपयोग करते हैं। और एक ऐप के बाहर, वास्तविक एंड्रॉइड ब्राउज़र बस ठीक चलाता है।

क्या निम्न स्तर पर एंड्रॉइड की समस्या को वास्तव में संबोधित करने का कोई तरीका है? क्या किसी ने एंड्रॉइड के लिए एक और व्यापक वेब ऑब्जेक्ट बनाया है?

किसी भी अंतर्दृष्टि

उत्तर

6

मुझे डर है कि दोनों उत्तर (Commonsware और Fuzzical तर्क) वास्तविकता से परहेज कर रहे हैं रहा हूँ।

वास्तविकता iOS के लिए एक HTML5 वेब अनुप्रयोग और बाद में PhoneGap एप्लिकेशन विकसित करने (संकर वेब दृश्य का उपयोग करके) के बारे में हमारी दो वर्षों के अनुभव से, Android और Windows Phone है:

आईओएस (दोनों सफारी और में पर बेहतरीन कार्य करता वेबव्यू), एंड्रॉइड पर क्रोम में उचित काम करता है, विंडोज 8 और आईई वेबव्यू पर आईई (सभी को समस्याएं थीं, लेकिन हल किया जा सकता है) लेकिन एंड्रॉइड वेबव्यू में एक दुःस्वप्न बनी हुई है।

एंड्रॉइड में वेबव्यू टूटा हुआ था और क्रोमियम के साथ किटकैट के अपडेट के बाद टूट गया है। यह सामान्य एचटीएमएल 5 पर भी दुर्घटनाग्रस्त हो जाता है (जावास्क्रिप्ट समस्याओं तक भी नहीं)। आपको बहुत सारी चीजों को देखकर नेट में मिलेगा।

"फ्लैश सपोर्ट" जैसी चीजों के साथ इसका कोई लेना-देना नहीं है - फ्लैश यह HTML5 नहीं है। निर्माता एक निश्चित प्लगइन का समर्थन करना चाहता है या नहीं (या, इस मामले में, एक संपूर्ण मिडलवेयर) उसके ऊपर है। मैं हमेशा ऐप्पल के फैसले को समझता हूं, और वेबव्यू में यह कम समझ में आता है।

तो, समस्या एक एंड्रॉइड/Google समस्या है, जितना अधिक इस मंच के समर्थक इसे अस्वीकार करना चाहते हैं। यह विशेष रूप से एक कंपनी के लिए शर्मनाक है जो हमेशा "खुला" रोता है और फिर इतने सालों बाद एक कामकाजी HTML5 ब्राउज़र घटक वितरित करने में सक्षम नहीं है।

लेकिन आपके सवाल का, था अगर वहाँ किसी और से किसी भी अन्य WebView है:

ठीक है, हम एक के बारे में जानकर बहुत खुशी होगी। खेद है कि हमें अब तक कोई भी नहीं मिला है, और कारण शायद उपर्युक्त पदों में जो भी उल्लेख किया गया था: इसे लागू करना बहुत मुश्किल है और यह हार्डवेयर निर्भर (हार्डवेयर त्वरण इत्यादि) होगा। हालांकि, चूंकि क्रोम कम से कम उचित काम करता है (इतने सालों के बाद ...) मुझे आश्चर्य है कि क्रोमियम वेबव्यू में समान गुणवत्ता की कमी Google द्वारा जानबूझकर है, लोगों को महान वेब ऐप्स या हाइब्रिड ऐप्स बनाने से दूर रखने की कोशिश कर रही है। (माइक्रोसॉफ्ट क्या कर रहा है इसके विपरीत काफी।)

+0

आप सही हैं। लेकिन इस समस्या के लिए आपको क्या समाधान मिला है? क्या वेब व्यू के लिए कोई अच्छा प्रतिस्थापन है? –

0

के लिए धन्यवाद इस लानत एक विषय से हटकर के करीब है, भेजने-your-दोषारोपण-कहीं-कृपया "सवाल" की तरह।

क्या एंड्रॉइड के लिए एक बेहतर वेबव्यू है?

"वेबव्यू" द्वारा तुम्हारा मतलब किसी एम्बेड वेब रेंडरिंग इंजन, शायद नहीं, के रूप में इस तरह के इंजन लेखन कठिन है। आप देख सकते हैं कि कोई फ़ायरफ़ॉक्स मोबाइल के ऑफशूट के रूप में उपलब्ध है या नहीं। या, आप ओओएसपी संस्करण का उपयोग शुरुआती बिंदु के रूप में करते हुए, एंड्रॉइड पर वेबकिट का अपना बंदरगाह बनाने के लिए आपका स्वागत है। ध्यान दें कि दोनों आपके ऐप के आकार में काफी वृद्धि कर सकते हैं।

Google के अपने दस्तावेज़ों का उल्लेख वेबव्यू ऑब्जेक्ट पर भरोसा नहीं करना है।

उद्धरण, कृपया।

किसी को भी Android के लिए एक अधिक व्यापक वेब वस्तु बना दिया गया है?

यह "अधिक व्यापक वेब ऑब्जेक्ट" की परिभाषा पर निर्भर करेगा। विशेष रूप से, आपने इस वाक्यांश के लिए किसी प्रकार की परिभाषा प्रदान करने के लिए उपेक्षित किया है।

+3

मैं इस जानकारी को समय के साथ अनुभागों में संबोधित करूंगा, लेकिन लोगों ने एंड्रॉइड कोड बेस में बेहतर सूचीदृश्य, बेहतर एसिंक्रोनस थ्रेडिंग और समग्र समस्या-सुलझाने के योगदान किए हैं, जैसा कि आप पहले ही जानते हैं।यह वेबव्यू ऑब्जेक्ट के बारे में एक प्रश्न है जो किसी ने इसे फिर से बनाया है या वेबव्यू ऑब्जेक्ट की वास्तविक समस्याओं को हल करने के लिए इसे बढ़ाया है। – CQM

+2

@ क्यूक्यूएम: 'वेबव्यू' स्वयं देशी कोड के मीट्रिक टन पर बैठता है, जो परिवर्तन करने के लिए हमारी लचीलापन को सीमित करता है। आपके द्वारा उद्धृत बाकी सब कुछ जावा में पूरी तरह लागू किया गया है। – CommonsWare

+1

@ कोडरसेवन शायद आपके कौशल स्तर के लिए भयानक है, लेकिन ये किसी ऐसे व्यक्ति के लिए जबरदस्त और सूचनात्मक उत्तर हैं जिन्होंने मंच के साथ थोड़ी देर के लिए काम किया है और उन्हें अपना हाथ रखने की आवश्यकता नहीं है। –

14

CQM,

समझ लें कि मैं Commonswares से सहमत है और लगभग सब कुछ है कि आपूर्ति की जवाब में कहा गया है। हालांकि, सवाल यह सूचित करते हैं एक मुद्दा है कि आप कर रहे हैं (या तो समझ या गर्भाधान में) और पाते हैं/अपनी आवश्यकताओं के लिए एक और अधिक पर्याप्त समाधान विकसित करना चाहते हैं है कि वहाँ लगता है।

सवाल और प्रतिक्रियाओं आप शायद प्राप्त करने के लिए जा रहे हैं को संबोधित करते:

मेरा मानना ​​है कि Commonswares वैध आलोचना तथ्य के कारण हैं कि आप यह नहीं है क्यों या कैसे प्रदान किया गया प्लेटफ़ॉर्म ऑब्जेक्ट असंतोषजनक है, न ही आप क्यों या जब आपको विश्वास है कि Google ने कहा है कि कहा गया वस्तु अविश्वसनीय है। यदि आप बेहतर प्रतिक्रिया चाहते हैं, तो इस सवाल को संवाद करने के लिए उचित रूप से अपना प्रश्न संपादित करें और आपको यहां कम समस्याएं होंगी।

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

गर्भित सवाल को संबोधित करते:

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

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

जैसे, WebView जब तक आप इसे विशुद्ध रूप से (प्रतिक्रिया और संभवतः) पर विश्वास किया और मानकों अनुरूप एचटीएमएल कोड देखने के लिए उपयोग वेब अपनी तानाना या उपयोगिता से के रूप में वितरित की गारंटी के बिना सामग्री को प्रदर्शित करने के लिए एक समाधान के रूप में प्रदान की जाती है। एक बार जब आप असली दुनिया की वेबसाइटों के वास्तविक प्रथाओं में शामिल हो जाते हैं, तो आपको एहसास होता है कि एचटीएमएल विशेष रूप से इतना लचीला बना दिया गया था क्योंकि अलग-अलग डेवलपर्स द्वारा विभिन्न स्तरों पर पालन किए जाने वाले प्रत्येक मानक। चूंकि एचटीएमएल का प्राथमिक श्रेय यह है कि यह संभावित अस्पष्टताओं के बावजूद काम करता है (सामग्री दिखाएं), एक पूरी तरह से व्यापक ऐप-एम्बेडेड ऑब्जेक्ट उन्मुख समाधान विकसित करने का मुद्दा विकसित करना मुश्किल हो जाता है।

... जहां अन्य मोबाइल उपकरणों - एक iPhone की तरह - चलेगा यह ठीक

यह सामग्री पर निर्भर करता है।इसके अलावा ऐप्पल उपकरणों के लिए विकास दर्शन पूरी तरह से एंड्रॉइड से अलग है। ऐप्पल में केवल कुछ मुट्ठी भर डिवाइस हैं, इसलिए वे अपने उपकरणों में समानता की गारंटी दे सकते हैं और चुन सकते हैं कि अतिरिक्त सुविधाओं को कब और कब जोड़ना है। उदाहरण के लिए, पहले आईफोन में फ़्लैश के लिए मूल समर्थन नहीं था। आपके प्रश्न के निहितार्थों के आधार पर, मेरा मानना ​​है कि यह "व्यापक" परीक्षण में विफल रहता है।

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

... वे दोनों वेबकिट का उपयोग करते हैं।

क्रोम और सफारी दोनों वेबकिट का भी उपयोग करते हैं। कई डेवलपर्स इस तरह के मिनटों के मतभेदों से पीड़ित हैं कि वे दोनों इसका अलग-अलग उपयोग करते हैं।

... एक ऐप के बाहर, वास्तविक एंड्रॉइड ब्राउज़र ठीक है।

यह ऊपर संबोधित किया गया है।

क्या निम्न स्तर पर एंड्रॉइड की समस्या को वास्तव में संबोधित करने का कोई तरीका है?

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

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

क्या किसी ने एंड्रॉइड के लिए एक और व्यापक वेब ऑब्जेक्ट बनाया है?

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

अंतिम वक्तव्य

मुद्दा आप को उठाया है वास्तव में पर्याप्त रूप से विशिष्ट एक सच्चे समाधान प्रदान करने के लिए नहीं था। खराब शब्द पसंद के कारण, यह एक विरोधी दृष्टिकोण भी लग रहा था। यदि आपकी समस्या को कॉमन्सवेयर के उत्तर या मेरे द्वारा हल नहीं किया गया था, तो हमारी अधिक विशिष्ट आवश्यकताओं को जोड़ने के लिए अपने प्रश्न को संपादित करने पर विचार करें। उस ने कहा, मुझे आशा है कि हमारे दोनों उत्तर आपके लिए कुछ अंतर्दृष्टि प्रदान करने में सक्षम थे।

आशा इस मदद करता है,

FuzzicalLogic

+2

यह एंड्रॉइड वेबव्यू का सबसे अच्छा स्पष्टीकरण है, और विभिन्न एंड्रॉइड निर्माताओं के बीच भी विसंगतियों के कारण हैं। इसके लिए धन्यवाद! –

1

मुझे आश्चर्य है कि किसी ने भी CocoonJS का उल्लेख नहीं किया है।

इसमें मानक वेबव्यू (वेबव्यू +) का पुनर्मूल्यांकन है; एक पैक किया गया वेबव्यू, इसलिए आपका ऐप लगातार डिवाइस पर चलाएगा (हालांकि एंड्रॉइड 4+ और आईओएस 8+ तक सीमित)।

वेबजीएल के लिए कैनवास + नामक एक पर्यावरण भी है, लेकिन यह वेबव्यू + से पूरी तरह से अलग है। इसका मतलब है कि आपको डीओएम और कैनवास को एक साथ प्रदर्शित करने के लिए कैनवास + के शीर्ष पर वेबव्यू + ओवरले करना होगा। वे एक ही जेएस पर्यावरण साझा नहीं करते हैं, लेकिन दोनों के बीच संदेश भेजने के लिए एक संदेश प्रणाली है।

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

Crosswalk भी है। यह एंड्रॉइड 4+ और टिज़ेन के लिए काम करता है।

+0

किसी ने इसका उल्लेख नहीं किया क्योंकि यह प्रश्न आपके उत्तर से 3 साल पहले पोस्ट किया गया था। अब इसे इंगित करने के लिए धन्यवाद – CQM

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