ওয়েবভিউতে এইচটিএমএল ফাইল লোড করুন


188

আমার একটি স্থানীয় এইচটিএমএল পৃষ্ঠা রয়েছে এবং এটি দ্বারা নির্দেশিত বিভিন্ন সংস্থানগুলি (সিএসএস ফাইল এবং জাভাস্ক্রিপ্ট লাইব্রেরি) রয়েছে যা আমি একটি ওয়েবউউতে লোড করতে চাই। এটি কীভাবে অর্জন করা যায়?

সম্ভবত অগ্রসর হওয়ার সর্বোত্তম উপায় নয় তবে আমি এখনও পরীক্ষা নিরীক্ষা করছি।


আমার জন্য এটি কাজ করেছিল যদি আমি ডট এইচটিএমএল - ওয়েবভিউ.লোড ইউআরএল ("ফাইল: /// অ্যান্ড্রয়েড_সেট / ফাইলের নাম") ফেলে দিই;
নিখরচায়

4
আপনি @ জো এর উত্তর গ্রহণ করতে চান না কেন এমন কোনও কারণ?
ক্লাসএ

3
webview.loadUrl ( "ফাইল: ///android_asset/sample.html"); - এখানে ক্লিক করুন
c49

উত্তর:


349

সবচেয়ে সহজ উপায় সম্ভবত আপনার ওয়েব সংস্থানগুলি সম্পত্তির ফোল্ডারে রাখার পরে কল করুন:

webView.loadUrl("file:///android_asset/filename.html");

জাভা এবং ওয়েবভিউয়ের মধ্যে সম্পূর্ণ যোগাযোগের জন্য এটি দেখুন

আপডেট: সম্পদ ফোল্ডারটি সাধারণত নিম্নলিখিত ফোল্ডার হয়: <project>/src/main/assets এটি আপনার <app>.imlফাইলে অ্যাসেট ফোল্ডার কনফিগারেশন সেটিংস হিসাবে পরিবর্তন করা যেতে পারে :

<option name=”ASSETS_FOLDER_RELATIVE_PATH” value=”/src/main/assets” />অ্যান্ড্রয়েড স্টুডিওতে সম্পদ ফোল্ডারটি কোথায় রাখবেন তা নিবন্ধটি দেখুন


6
এই সমস্যাটি আসলেই একটি FAQ।
শিহপেং

2
আপনি যদি সম্পদ ব্যবহারের পক্ষে খুব প্রতিকূল হন তবে আপনি সম্ভবত এটি একটি স্ট্রিংও লোড করতে পারেন ... ( স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 4543349 / লোড- লোকাল- html-in-webview দেখুন )
জো

24
এটি সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত, কারণ এটি সত্যই।
gorodechnyj

6
@ এসকে 9 একই প্রযোজ্য যদি অন্য কোনও সম্পদ বা প্রত্যাশিত ফাইল অনুপস্থিত থাকে, যেমন আপনি যদি আপনার প্রারম্ভিক ক্রিয়াকলাপ শ্রেণীর নাম পরিবর্তন করেন এবং তা AndroidManifest.xmlপ্রতিফলিত করার জন্য আপডেট না করেন । (ব্যক্তিগতভাবে, আমি স্ট্রিং রিসোর্সে URL / ফাইলের পাথ স্থাপন এবং সেখান থেকে অ্যাক্সেস করার পরামর্শ দিই যে প্রোগ্রামটির জন্য অন্যান্য সমস্ত স্ট্রিং ডেটা সহ পাথটি রয়েছে, তবে এটি সম্পদ / ইস্যু সম্পর্কিত সমস্যার সাথে সরাসরি সম্পর্কিত নয়) সংস্থান নির্ভরতা।)
জ্যাব

7
যারা সম্পদ ফোল্ডার তৈরি করবেন তা জানেন না, "অ্যাপ" -> "নতুন" -> "ফোল্ডার" -> "সম্পদ ফোল্ডার" এ ডান ক্লিক করুন এবং "সমাপ্তি" ক্লিক করুন। অ্যান্ড্রয়েড স্টুডিও সম্পদের ফোল্ডারটি সঠিক পথে তৈরি করবে। এবং আপনাকে কেবলমাত্র এইচটিএমএল ফাইলটি নতুন সম্পদ ফোল্ডারে সরিয়ে নিতে হবে। রেফারেন্স: stackoverflow.com/questions/18302603/...
Yuchao ঝু

27

সম্ভবত এই নমুনা সাহায্য করতে পারে:

  WebView lWebView = (WebView)findViewById(R.id.webView);
  File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
  lWebView.loadUrl("file:///" + lFile.getAbsolutePath());

3
বাহ্যিক স্মৃতিতে এইচটিএমএল রয়েছে এমন উদাহরণে এটি প্রয়োগের মধ্যে প্যাকেজ করা ভাল
জোনাথন গার্সিয়া

1
স্থানীয় ফাইল ডিরেক্টরি থেকে HTML ফাইল ব্যবহার করার সময় "ফাইল: ///" গুরুত্বপূর্ণ। ধন্যবাদ
ralphgabb

5

এক্ষেত্রে ব্যবহার WebView#loadDataWithBaseUrl()করা তার চেয়ে ভাল WebView#loadUrl()!

webView.loadDataWithBaseURL(url, 
        data,
        "text/html",
        "utf-8",
        null);

url: url / path আপনার সমস্ত জাভাস্ক্রিপ্ট ফাইল এবং এইচটিএমএল লিঙ্কগুলির ডিরেক্টরিতে নির্দেশ করে স্ট্রিং। যদি নাল, এটি প্রায়: ফাঁকা। ডেটা: আপনার এইচএমটিএল ফাইলযুক্ত স্ট্রিং, উদাহরণস্বরূপ বুফারড্রেডার সহ পড়ুন

আরও তথ্য: ওয়েবভিউ.লোডডাটা উইথবেস ইউআরএল (জাভা.লং.স্ট্রিং, জাভা.লং। স্ট্রিং, জাভা.লং.স্ট্রিং, জাভা.লং.স্ট্রিং, জাভা.লং.স্ট্রিং)


3
ডেটা ভেরিয়েবল কী ? একটি উদাহরণ প্রদান করুন।
ইগোরগানাপলস্কি

0

স্বীকৃত উত্তরটি আমার পক্ষে কাজ করছে না, এটি আমার পক্ষে কাজ করে

WebSettings webSetting = webView.getSettings();
    webSetting.setBuiltInZoomControls(true);
    webView1.setWebViewClient(new WebViewClient());

   webView.loadUrl("file:///android_asset/index.html");

আপনার মোবাইল এর সংস্করণ কি?
জিমালে আব্বি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.