क्या स्थानीय .html
फ़ाइल को WebView
में लोड करने की गति में सुधार करने का कोई तरीका है। .html
फ़ाइलें /assets
फ़ोल्डर में संग्रहीत हैं।एंड्रॉइड: वेबव्यू स्थानीय एचटीएमएल फाइलों की लोडिंग गति में सुधार
आप वीडियो में देख सकते हैं (क्षमा करें, लिंक टूटी हुई है!), TextView
(लाल beackground) प्रदान की गई है इससे पहले कि transistion, शुरू होता है, जबकि WebView
में पाठ बाद में दिखाया गया है। 0Vको टेक्स्टव्यू के रूप में तेज़ी से लोड करने के लिए मैं कैसे प्राप्त कर सकता हूं?
//current implementation
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.loadUrl("file:///android_asset/disclaimer.html");
सारांश
यह संभव नहीं है। मैंने यहां सभी टिप्पणियों की कोशिश की और इससे कोई फर्क नहीं पड़ता।
कारण मैं पूछता था कि हमारे पास आईओएस और एंड्रॉइड के लिए एक आवेदन था, जिसमें मुख्य रूप से सरल TextViews
और Images
शामिल थे। तो हमारे पास स्थानीयhtml
फ़ाइलों को बनाने का विचार था, जिसे हम दोनों अनुप्रयोगों में उपयोग कर सकते थे। iOS
में यह एक आकर्षण की तरह काम करता है, लेकिन Android
में हम लोडिंग समय से छुटकारा नहीं पा सके, इसलिए मेरे पास हमेशा एक खाली स्क्रीन थी और सामग्री के 100-200ms के बाद दिखाई देता था।
मुझे लगता है कि गतिविधि दिखाई देने पर एंड्रॉइड WebView
प्रतिपादन शुरू होता है। ऑनलाइन मोड में यह पूरी तरह से समझ में आता है, क्योंकि आप वास्तव में उन्हें ध्यान केंद्रित करने से पहले, कई HTML पृष्ठों को लोड करना नहीं चाहते हैं, जो उपयोगकर्ता पृष्ठभूमि में एक नए टैप में खुलता है। हालांकि, ऑफ़लाइन मोड (एप्लिकेशन में संग्रहीत स्थानीय HTML फ़ाइलें assets
) यह व्यवहार अनावश्यक है, लेकिन आप इसे बदल नहीं सकते हैं।
अब हम वास्तव में क्यों फोनगैप & सह बेकार है।
बस रिकॉर्ड के लिए: अंत में, मैंने एक खाली LinearLayout
कंटेनर के साथ एक गतिविधि का उपयोग किया, जहां आप प्रोग्रामिक रूप से सामग्री सम्मिलित कर सकते थे। प्रत्येक शैली (शीर्षक 1, शीर्षक 2, सामग्री ...) एक स्वयं के लेआउट xml फ़ाइल
public void insertHeadline(int id){
String text = getString(id);
TextView headline = (TextView) inflater.inflate(R.layout.layout_text_headline, null, false);
headline.setText(text);
//add this TextView to the empty container
myLinearLayoutContainerView.addView(headline);
}
क्या आप कृपया अन्य संपत्तियों की प्रतिलिपि बनाने के लिए पोस्ट कर सकते हैं? – soommy12