2012-01-31 11 views
5

.js शामिल स्थानीय html फ़ाइल लोड करने के लिए मैं assest में (जो .js की वेब लिंक मिलकर बनता है) .html फ़ाइल जगह, अब मैं यूआरएल को लोड करनेवेबव्यू जो के रूप में <script src>

कोशिश कर रहा हूँ
mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.getSettings().setPluginsEnabled(true); 
     mWebView.getSettings().setAllowFileAccess(true); 

     mWebView.loadUrl("file:///android_asset/anim1.html"); 

यहां मैं .js फ़ाइल को सकारात्मक प्रतिक्रिया के लिए प्रतीक्षा करने में असमर्थ हूं।

+0

आपके संपादन कार्य के लिए धन्यवाद natali। –

उत्तर

7

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

दूसरा, यदि आप उस दृष्टिकोण का उपयोग करते हैं तो मैंने अभी समझाया है, अब आप WebView.loadUrl() विधि का उपयोग नहीं कर सकते हैं, बल्कि इसके बजाय आपको WebView.loadDataWithBaseUrl() विधि का उपयोग करने की आवश्यकता होगी। इस तरह:

webView.loadDataWithBaseURL("http://some_url/", "some_data", "text/html", "utf-8", null); 

फिर, "some_data" एक HTML पृष्ठ के रूप में लोड करने की कोशिश की हो जाएगा, के रूप में this previous SO answer में देखा। जब यह एक जावास्क्रिप्ट संसाधन लोड करने का प्रयास करता है, जैसे /scripts/lib.js, तो इसे http://some_url/scripts/lib.js पर हल किया जाएगा, और WebView उस संसाधन को लोड करने का प्रयास करेगा। बेशक यह नहीं हो सकता है, और यही कारण है कि आप (जावा में) को WebViewClient कक्षा का विस्तार करने की आवश्यकता होगी, और shouldInterceptRequest(WebView wv, String url) विधि के लिए कार्यान्वयन प्रदान करना होगा।

जब किसी भी संसाधन को वेब पेज में लाने की कोशिश की जाती है, तोहोल्डइंटरसेप्टवेक्वेट 'कहा जाएगा, और इसका रिटर्न वैल्यू संसाधन के रूप में उपयोग किया जाएगा।

+0

यदि हम आंतरिक संग्रहण का उपयोग करते हैं तो हम फ़ाइलों को कैसे अपडेट कर सकते हैं? – eugene

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