কীভাবে এইচটিএমএল স্ট্রিংটি অ্যান্ড্রয়েডের ওয়েবভিউতে পাস করবেন


141

হাই আমি এক্সএমএল পার্স করছি এবং তারপরে এটি ওয়েব ভিউতে লোড করছি, পার্স করার পরে আমি চারটি স্ট্রিং তৈরি করছি যাতে আমি সমস্ত স্ট্রিংকে একটি ভিউতে যুক্ত করতে পারি। আমি ওয়েব ভিউতে দুটি মতামত পেতে সক্ষম হয়েছি তবে প্রথম দুটি স্ট্রিং নয়।

প্লিজ আমাকে কোড সহ পরামর্শ দেয়, আমি কোথায় ভুল করছি এবং ওয়েব ভিউতে ফর্ম্যাট করা এইচটিএমএল স্ট্রিংগুলি পাওয়ার সঠিক উপায়টি কী। প্লিজ আমার কোডটি দেখুন এবং এই সমস্যাটি সমাধান করতে আমাকে সহায়তা করুন।

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        String chapterTitle = "";
        String SubChapterTitle="";
        String chapterIntro ="";
        String chapterContent="";
        View view = convertView;
        if (convertView == null) {
            // view = inflater.inflate(resourceid, null);
            view = getLayoutInflater().inflate(R.layout.webviewitem, null);
        }
        synchronized (view) {
            WebView wv = (WebView) view.findViewById(R.id.contentWebView);

            WebSettings settings = wv.getSettings();
            settings.setUseWideViewPort(true);
            settings.setLoadWithOverviewMode(true);
            settings.setJavaScriptEnabled(true);
            settings.setDefaultZoom(ZoomDensity.FAR);
            // wv.setBackgroundColor(0);
            wv.setVerticalScrollBarEnabled(false);
            wv.setHorizontalScrollBarEnabled(false);
            /*String txtChapTitle = Intro.book.getsecretList().get(position)
                    .getChtitle().toString();*/

            if (!(Intro.book.getsecretList().get(position).getChtitle()
                    .toString().equals(""))){
            chapterTitle = "<b><fontSize=4>"+Intro.book.getsecretList().get(position)
            .getChtitle().toString()+"</font></b>";
            }
            if (!(Intro.book.getsecretList().get(position)
                    .getSubtitle() == null)) {
                SubChapterTitle = "<b><fontSize=4>"+Intro.book.getsecretList().get(position)
                .getSubtitle().toString()+"</font></b>";
            }
            if (!(Intro.book.getsecretList().get(position)
                    .getIntro() == null)) {
            chapterIntro = "<b><fontSize=2>"+Intro.book.getsecretList().get(position)
                .getIntro().toString()+"</font></b>";
            }
            if (!(Intro.book.getsecretList().get(position)
                    .getContent() == null)) {
            chapterContent = "<fontSize=2>"+Intro.book.getsecretList().get(position)
                .getContent().toString()+"</font>";
            }

            StringBuilder content = new StringBuilder();
            content.append(chapterTitle+SubChapterTitle+chapterIntro+chapterContent);

            JsInterface Jsi = new JsInterface();
            Jsi.wordDef = content ;
            Log.v("Content", "" +content);
            wv.addJavascriptInterface(Jsi, "interfaces");

            wv.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url) {
                    view.setHapticFeedbackEnabled(false);
                }
            });

            wv.setWebChromeClient(new WebChromeClient() {
                @Override
                public boolean onJsAlert(WebView view, String url,
                        String message, JsResult result) {
                    return super.onJsAlert(view, url, message, result);
                }
            });

            wv.loadUrl("file:///android_asset/wordview.html");
        }
        return view;
    }
}

আমি ওয়েব ভিউতে চ্যাপ্টার ইন্ট্রো এবং চ্যাপ্টার কনটেন্ট পেতে সক্ষম তবে প্রথম দুটি স্ট্রিং প্লিজ আমাকে বন্ধু হিসাবে সহায়তা করবে না।

উত্তর:


190

আমি সফলভাবে নীচের লাইন দ্বারা সম্পন্ন করেছি

 //data == html data which you want to load 
 WebView webview = (WebView)this.findViewById(R.id.webview);
 webview.getSettings().setJavaScriptEnabled(true);
 webview.loadDataWithBaseURL("", data, "text/html", "UTF-8", "");

আপনি কি এটিকে index.php / index.html এর <হেড> এ যুক্ত করবেন?
মাঠে বেসিটি

1
হ্যাঁ, আপনি যদি চান, অন্যথায় এটি ঠিক হয়ে যাবে
সিদ্ধপুরা অমিত

এটি কিছুটা পিছিয়ে যাওয়ার পরে ইউআই আপডেট করে। কীভাবে জিনিসটা ঠিক করবেন?
নরেন্দ্র সিং

আমি যদি ওয়েবউইভ.ইউইলআরএল ("জাভাস্ক্রিপ্ট: মাই ফাংশন (ডেটা," টেক্সট / এইচটিএমএল "," ইউটিএফ -8 ") ব্যবহার করে এইচটিএমএলকে জাভাস্ক্রিপ্ট ফাংশনে পাস করতে চাই, তবে আমি কি" টেক্সট / এইচটিএমএল "," ইউটিএফ -8 "ব্যবহার করতে পারি?
ব্যবহারকারী 1788736

না আমি এর মতো ব্যবহার করি নি
সিদ্ধপুরা অমিত

168

ওয়েবভিউতে আপনার ডেটা লোড করতে। ওয়েবভিউয়ের কল লোডডেটা () পদ্ধতি

webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");

আপনি এই উদাহরণটি পরীক্ষা করতে পারেন

http://developer.android.com/reference/android/webkit/WebView.html


আমি যে তার সাথে চেষ্টা করেছি, এখনো আরো loadbaserul সঙ্গে চেষ্টা ঘটছে
cavallo

এটি কি জাভাস্ক্রিপ্টযুক্ত স্ট্রিংয়ের সাথে কাজ করার কথা? এটি আমার পক্ষে কাজ করছে না
এডু

27
এটি হওয়া উচিতwebView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");
জারোস্লাভ

5
"পাঠ্য / এইচটিএমএল; চরসেট = utf-8" একটি বড় পার্থক্য তৈরি করে, প্রতীক অক্ষরগুলি এগুলি ছাড়াই সঠিকভাবে রেন্ডার করে না।
মাইক ফোক

29

নাল পাস করা ভাল হবে। সম্পূর্ণ কোডগুলি হ'ল:

WebView wv = (WebView)this.findViewById(R.id.myWebView);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadDataWithBaseURL(null, "<html>...</html>", "text/html", "utf-8", null);

আপনি কি এটিকে index.php / index.html এর <হেড> এ যুক্ত করবেন?
মাঠে বেসিটি

@mthethelelibeseti এটি এইচটিএমএল নয়, অ্যান্ড্রয়েড কোড। নাকি আমি আপনার প্রশ্নটি ভুল বুঝেছি?
জেফ্রি নিও

এটি সমস্ত ধরণের এইচটিএমএল স্ট্রিংয়ের কার্যকারী সমাধান। ধন্যবাদ @ জেফ্রেনিও
আকাশ বিসারিয়ার

2

সাধারন ডেটা লোড করা আমার পক্ষে কাজ করে না, বেস 64 তে রূপান্তরিত করে ঠিক কাজ করে working

String unencodedHtml ="<html><body>'%28' is the code for '('</body></html>";
tring encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(), Base64.NO_PADDING);
webView.loadData(encodedHtml, "text/html", "base64");

ওয়েবভিউতে বিশদ খুঁজুন

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