मैं अपने रिमोट एचटीएमएल पेज पर जावास्क्रिप्ट और छवियों को कैसे बना सकता हूं संपत्ति फ़ोल्डर (या सिर्फ कोई स्थानीय संसाधन) से लोड किया जा सकता है?संपत्तियों से एंड्रॉइड वेबव्यू जावास्क्रिप्ट
उत्तर
उत्तर: इस विशेष मामले आप होना चाहिए में
String html = readHtml("http://mydomain.com/my.html");
mWebView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", "");
: आधार URL के साथ
private String readHtml(String remoteUrl) {
String out = "";
BufferedReader in = null;
try {
URL url = new URL(remoteUrl);
in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
out += str;
}
} catch (MalformedURLException e) {
} catch (IOException e) {
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return out;
}
2. लोड WebView:
1. आप स्ट्रिंग में HTML लोड करना होगा सभी .js फ़ाइलें जिन्हें आप पृष्ठ पर उपयोग करना चाहते हैं, परियोजना के "संपत्ति" फ़ोल्डर के नीचे कहीं भी रहते हैं। उदाहरण के लिए:
<script src="file:///android_asset/jquery.min.js" type="text/javascript"></script>
ही अन्य सभी स्थानीय पर लागू होता है:
/MyProject/assets/jquery.min.js
3. अपने रिमोट html पृष्ठ में आप .js और .css फ़ाइलें जो की तरह अपने आवेदन में रहते हैं लोड करने के लिए है छवियों जैसे संसाधनों, आदि उनके रास्ते
file:///android_asset/
वेब दृश्य के साथ शुरू करने के लिए पहली बार कच्चे एचटीएमएल आप स्ट्रिंग के रूप में प्रदान की है लोड, तो .js चुनेंगे है, .css और अन्य स्थानीय संसाधनों और फिर दूरस्थ सामग्री लोड करेंगे।
यदि आप 'loadDataWithBaseURL' के साथ मूल पथ सेट करते हैं तो आपको पूर्ण पथ क्यों देना होगा? इसके अलावा, ऐसा लगता है कि यह 4.1+ में टूट जाता है। :( – Maarten
यह मेरे लिए 4.1+ में काम करता प्रतीत होता है, और अब तक एकमात्र तरीका है कि मैं जावास्क्रिप्ट के साथ एचटीएमएल लोड करने में सक्षम हूं जो संपत्ति फ़ोल्डर में हार्डकोड नहीं है। – Chris
यदि एचटीएमएल पहले से ही कोई संभावना नहीं है प्रोग्राम को संपादित करने के लिए इन फ़ाइलों की पहचान करनी चाहिए और * स्ट्रिंग एचटीएमएल * – htafoya
यदि गतिशील रूप से आपका HTML बनाते हैं और फिर loadDataWithBaseURL का उपयोग करके सुनिश्चित करें कि कोई स्थानीय संसाधन उदा। आपकी संपत्ति फ़ोल्डर में जावास्क्रिप्ट को एचटीएमएल में फ़ाइल के रूप में संदर्भित किया जाता है: /// (मैं इसे काम करने में घंटों का खर्च करता हूं)
क्या आप कृपया विस्तार से बता सकते हैं कि स्ट्रिंग के रूप में HTML प्राप्त करने के बाद .js को गतिशील रूप से (फ़ाइल: //) पथ कैसे जोड़ें। – Adi
आपको जवाब को उत्तर में रखना चाहिए ताकि हम इसे बंद कर सकें। –