किसी वेबव्यू में कुछ स्थानीय डेटा लोड करने के लिए, मैंने एक स्थानीय यूआरएल युक्त एक स्ट्रिंग बनाई, और इसका उपयोग HTML फ़ाइल को लोड करने के लिए किया। इसलिए उदाहरण के लिए एक स्ट्रिंग:
<string name="url_to_load">file:///android_asset/localized_ru.html</string>
गतिविधि में /assets
निर्देशिका में एक फ़ाइल localized_ru.html
संदर्भ के लिए, और उसके बाद:
webView.loadUrl(getString(R.string.url_to_load));
मैं के बाद से assets/
निर्देशिका स्थानीय नहीं है एक स्ट्रिंग के माध्यम से इस अप्रत्यक्ष इस्तेमाल किया , और एक यूआरएल का उपयोग कर संसाधन लोड करना मेरे लिए काम नहीं करता है।
तुम सच में अपने वेब दृश्य से सभी स्ट्रिंग संसाधनों को लोड करने में सक्षम होना चाहते हैं, तो आप एक जावास्क्रिप्ट इंटरफ़ेस और एक सरल सहायक वर्ग बना सकते हैं:
class Localizer {
private Resources res;
public Localizer(Resources res) {
this.res = res;
}
public String get(String key) {
int id = res.getIdentifier(key, "string", "org.example.app");
return res.getString(id);
}
}
तो में वेबव्यू है कि पारित अपनी गतिविधि: यह करने के लिए
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Localizer(getResources()), "localizer");
एक तरह से प्रत्येक पृष्ठ के लिए एक जे एस गतिविधि के मूल निवासी कॉल करने के लिए और, जरूरत stings.xml संसाधनों मिलता है और फिर उन्हें jQuery के माध्यम से वेब दृश्य में प्रस्तुत करना है। ऐसा लगता है कि स्टार्टअप पर वेबव्यू पर सभी आवश्यक स्ट्रिंग्स.एक्सएमएल संसाधन भेजने के लिए एक और अधिक प्रभावी तरीका होना चाहिए। – tamsler