কিভাবে একটি ওয়েব ভিউ থেকে এইচটিএমএল সামগ্রী পাবেন?


123

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

public class htmldecoder extends Activity implements OnClickListener,TextWatcher
{
TextView txturl;
Button btgo;
WebView wvbrowser;
TextView txtcode;
ImageButton btcode;
LinearLayout llayout;
int flagbtcode;
public void onCreate(Bundle savedInstanceState)
{
            super.onCreate(savedInstanceState);
                setContentView(R.layout.htmldecoder);

    txturl=(TextView)findViewById(R.id.txturl);

    btgo=(Button)findViewById(R.id.btgo);
    btgo.setOnClickListener(this);

    wvbrowser=(WebView)findViewById(R.id.wvbrowser);
    wvbrowser.setWebViewClient(new HelloWebViewClient());
    wvbrowser.getSettings().setJavaScriptEnabled(true);
    wvbrowser.getSettings().setPluginsEnabled(true);
    wvbrowser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    wvbrowser.addJavascriptInterface(new MyJavaScriptInterface(),"HTMLOUT");
    //wvbrowser.loadUrl("http://www.google.com");
    wvbrowser.loadUrl("javascript:window.HTMLOUT.showHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");


    txtcode=(TextView)findViewById(R.id.txtcode);
    txtcode.addTextChangedListener(this);

    btcode=(ImageButton)findViewById(R.id.btcode);
    btcode.setOnClickListener(this);

    }

public void onClick(View v)
{
    if(btgo==v)
    {
        String url=txturl.getText().toString();
        if(!txturl.getText().toString().contains("http://"))
        {
            url="http://"+url;
        }
        wvbrowser.loadUrl(url);
        //wvbrowser.loadData("<html><head></head><body><div style='width:100px;height:100px;border:1px red solid;'></div></body></html>","text/html","utf-8");
    }
    else if(btcode==v)
    {
        ViewGroup.LayoutParams params1=wvbrowser.getLayoutParams();
        ViewGroup.LayoutParams params2=txtcode.getLayoutParams();
        if(flagbtcode==1)
        {
            params1.height=200;
            params2.height=220;
            flagbtcode=0;
            //txtcode.setText(wvbrowser.getContentDescription());
        }
        else
        {
            params1.height=420;
            params2.height=0;
            flagbtcode=1;
        }
        wvbrowser.setLayoutParams(params1);
        txtcode.setLayoutParams(params2);

    }
}

public class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        view.loadUrl(url);
        return true;
    }
    /*@Override
    public void onPageFinished(WebView view, String url)
    {
        // This call inject JavaScript into the page which just finished loading. 
        wvbrowser.loadUrl("javascript:window.HTMLOUT.processHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
    }*/

}
class MyJavaScriptInterface
{
    @SuppressWarnings("unused")
    public void showHTML(String html)
    {

        txtcode.setText(html);
    }
}

public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

}

public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub

}

public void onTextChanged(CharSequence s, int start, int before, int count) {
    wvbrowser.loadData("<html><div"+txtcode.getText().toString()+"></div></html>","text/html","utf-8");

}

}

উত্তর:


107

আসলে এই প্রশ্নের অনেক উত্তর আছে। তাদের মধ্যে 2 টি এখানে রয়েছে:

  • এটি প্রথমটি আপনার মতো প্রায় একই, আমার ধারণা আমরা এটি একই টিউটোরিয়াল থেকে পেয়েছি।

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}

এইভাবে আপনার জাভাস্ক্রিপ্টের মাধ্যমে এইচটিএমএল দখল করুন। সবচেয়ে সুন্দর উপায় নয় তবে যখন আপনার জাভাস্ক্রিপ্ট ইন্টারফেস রয়েছে, আপনি এটি টিঙ্কারে অন্যান্য পদ্ধতি যুক্ত করতে পারেন।


  • অন্য একটি উপায় হ'ল এইচটিপিপ্লায়েন্টকে সেভাবে ব্যবহার করছে

আপনি যে বিকল্পটি চয়ন করেছেন তা নির্ভর করে, আমি মনে করি, পুনরুদ্ধারকৃত এইচটিএমএল নিয়ে আপনি কী করতে চান তার উপর ...


এই লাইনটি কার্যকর webview.loadUrl("javascript:window.HtmlViewer.showHTML" + "('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");করার সময় প্রোগ্রামটি ফাংশন ফিনিস () এর মতো কাজ করে এবং সেই ক্রিয়াকলাপ বন্ধ করে দেয় w কেন? কীভাবে এটি সমাধান করবেন?

7
ওয়েবভিউ.এডিডি জাভাস্ক্রিপ্ট ইন্টারফেস কেবল জেলি বিন এবং নিম্ন সংস্করণে কাজ করে।
xtr

32
উপরের কোডে জেলিবিয়ানের জন্য দুটি গুরুত্বপূর্ণ পরিবর্তন এবং পরে: ১ "উইন্ডোটি সরান"। ওয়েবভিউ.লোড ইউআরএল লাইন থেকে - জেলিবিয়ান লক্ষ্য করে জাভাস্ক্রিপ্ট ইন্টারফেসটি আলাদাভাবে সংযুক্ত করা হয়। ২. "জাভাস্ক্রিপ্টআইন্টারফেসটিকে" সার্বজনীন শূন্য শো এইচটিএমএল "এর আগে রাখুন - এটি প্রয়োজনীয় কারণ যেহেতু এটি একটি নির্দিষ্ট ঝুঁকির জন্য নির্দিষ্ট কিছু পদ্ধতি না বলার অনুমতি না দেয় risk
karlbecker_com

1
তবুও আমার জন্য কাজ করে না (5.1.1) .. যখন আমি লোড পেজ সিস্টেমে কিছু ক্লিক করছি তখন আমার জাজাস্ক্রিপ্টআইনটারফেসটি (@ কার্লবেকার_কম ইঙ্গিত সহ) যুক্ত করছি যখন আমাকে ব্রাউজার চয়ন করতে বলছে। আমি এটিকে সরিয়ে দিলে, এটি আমাকে আর জিজ্ঞাসা করবে না।
মাকালেলে

1
এখানে আমি দূরবর্তী ডিবাগিং সক্ষম করেছি, এটি দেখিয়েছে Uncaught ReferenceError: HtmlViewer is not defined, এর সাথে বা বাইরে কোনও ব্যাপারই নয়@JavascriptInterface
MewX

55

কিটকাট এবং evaluateJavascriptতারপরে , আপনি ওয়েবভিউতে পদ্ধতি ব্যবহার করতে পারেন

wvbrowser.evaluateJavascript(
        "(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();",
         new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String html) {
                Log.d("HTML", html); 
                // code here
            }
    });

আরও উদাহরণের জন্য এই উত্তর দেখুন


এটি এখানে ব্যবহারের সবচেয়ে সহজ সমাধান
বিলি

9
এফওয়াইআই - এপিআই 19 দরকার
জোয়েল

7
এটি অন পেজফিনিশ পদ্ধতিতে রাখার কথা মনে রাখবেন।
সিড্রিক পোর্টম্যান

@ জোয়েল কীভাবে এপিআই 19 এর নীচে এটি অর্জন করবেন?
প্রতীক সালুজা

1
@ প্রতীকসালুজা আমার মন্তব্যটি ভুল ধারণাটি জানালে অত্যন্ত দুঃখিত। এখানে বেশিরভাগ আপোভেটের সাথে উত্তরটি আমার নিজের উত্তর থেকে অনেক বেশি পুরানো এবং সম্ভবত আপনার পক্ষে কাজ করবে। এর বাইরে কিছু বোঝাতে চাইনি। বিটিডাব্লু অন্য কোথাও দেখে আপনি উত্তরটি পেয়েছেন বলে খুব আনন্দিত।
আকাশ কুরিয়ান জোস

41

অ্যান্ড্রয়েড ৪.২ এর জন্য, সমস্ত জাভাস্ক্রিপ্ট ফাংশনে @ জাভাস্ক্রিপ্টআইনটারফেস যুক্ত করতে ভুলবেন না


1
অ্যানড্রয়েড ৪.২ এবং অ্যাবোভের জন্য কাজ করে।
সিড্রিক পোর্টম্যান

10

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

এইচটিটিপিআরল সংযোগ বা এইচটিটিপি ক্লিনেন্ট ব্যবহার করে কাঁচা প্রবাহ পাওয়ার বিষয়ে কথা বলার উত্তর ইতিমধ্যে রয়েছে। বিকল্পভাবে, অ্যান্ড্রয়েডে এইচটিএমএল বিষয়বস্তু বিশ্লেষণ / প্রক্রিয়া নিয়ে কাজ করার সময় খুব কার্যকরী লাইব্রেরি রয়েছে: জাসপ , এটি এইচটিএমএল বিষয়বস্তু এইচটিটিপি সার্ভারের রূপ পেতে খুব সহজ এপিআই সরবরাহ করে এবং কেবলমাত্র এইচটিএমএল পার্সিং পরিচালনা করতে সহায়তা করার জন্য এইচটিএমএল ডকুমেন্টের একটি বিমূর্ত উপস্থাপনা সরবরাহ করে আরও ওও স্টাইলে তবে খুব সহজে:

// Single line of statement to get HTML document from HTTP server.
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();

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


5

একটি স্পর্শ পয়েন্ট যা আমি খুঁজে পেয়েছি তা প্রোগার্ড কনফিগারেশনে "লুকানো" দূরে রয়েছে। অ্যাপ্লিকেশনটি ডিবাগ করার সময় এইচটিএমএল রিডার জাভাস্ক্রিপ্ট ইন্টারফেসের মাধ্যমে ঠিকঠাকভাবে আহ্বান জানায়, প্রুগার্ডের মাধ্যমে অ্যাপটি চালুর সাথে সাথেই এটি আর কাজ করবে না, যদি না এইচটিএমএল রিডার ফাংশন প্রুগার্ড কনফিগারেশন ফাইলে ঘোষণা না করা হয় তবে:

-keepclassmembers class <your.fully.qualified.HTML.reader.classname.here> {
    public *; 
}

অ্যান্ড্রয়েড 2.3.6, 4.1.1 এবং 4.2.1 এ পরীক্ষিত এবং নিশ্চিত হয়েছে T


4

সুরক্ষা উদ্বেগের জন্য অ্যান্ড্রয়েড আপনাকে এটি করতে দেবে না। একজন দুষ্ট বিকাশকারী খুব সহজেই ব্যবহারকারী-প্রবেশ করানো লগইন তথ্য চুরি করতে পারে।

পরিবর্তে, আপনাকে পাঠ্যটি ওয়েব ভিউতে প্রদর্শিত হওয়ার আগে এটি প্রদর্শিত হবে। আপনি যদি কোনও প্রতিক্রিয়া হ্যান্ডলার সেট করতে না চান (অন্যান্য উত্তর অনুসারে), আমি কিছু গুগল করে এই ফিক্সটি পেয়েছি:

URL url = new URL("/programming/1381617");
URLConnection con = url.openConnection();
Pattern p = Pattern.compile("text/html;\\s+charset=([^\\s]+)\\s*");
Matcher m = p.matcher(con.getContentType());
/* If Content-Type doesn't match this pre-conception, choose default and 
 * hope for the best. */
String charset = m.matches() ? m.group(1) : "ISO-8859-1";
Reader r = new InputStreamReader(con.getInputStream(), charset);
StringBuilder buf = new StringBuilder();
while (true) {
  int ch = r.read();
  if (ch < 0)
    break;
  buf.append((char) ch);
}
String str = buf.toString();

এটি প্রচুর কোড এবং আপনার এটি অনুলিপি / আটকানোতে সক্ষম হওয়া উচিত এবং এটির শেষে strওয়েবভিউতে অঙ্কিত একই এইচটিএমএল থাকবে। এই উত্তরটি জাভাতে একটি স্ট্রিংয়ে ওয়েব পৃষ্ঠা থেকে HTML টি সঠিকভাবে লোড করার সহজতম উপায় থেকে এবং এটি অ্যান্ড্রয়েডেও কাজ করা উচিত। আমি এটি পরীক্ষা করে নিই এবং নিজেই লিখিনি, তবে এটি আপনাকে সাহায্য করতে পারে।

এছাড়াও, এটি যে URL টি টানছে তা হার্ডকোডযুক্ত, সুতরাং আপনাকে এটি পরিবর্তন করতে হবে।


1

প্রথমে এইচটিএমএল পাবে না কেন তবে এটি ওয়েব ভিউতে পাস করবে?

private String getHtml(String url){
    HttpGet pageGet = new HttpGet(url);

    ResponseHandler<String> handler = new ResponseHandler<String>() {
        public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
            HttpEntity entity = response.getEntity();
            String html; 

            if (entity != null) {
                html = EntityUtils.toString(entity);
                return html;
            } else {
                return null;
            }
        }
    };

    pageHTML = null;
    try {
        while (pageHTML==null){
            pageHTML = client.execute(pageGet, handler);
        }
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return pageHTML;
}

@Override
public void customizeWebView(final ServiceCommunicableActivity activity, final WebView webview, final SearchResult mRom) {
    mRom.setFileSize(getFileSize(mRom.getURLSuffix()));
    webview.getSettings().setJavaScriptEnabled(true);
    WebViewClient anchorWebViewClient = new WebViewClient()
    {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);

            //Do what you want to with the html
            String html = getHTML(url);

            if( html!=null && !url.equals(lastLoadedURL)){
                lastLoadedURL = url;
                webview.loadDataWithBaseURL(url, html, null, "utf-8", url);
            }
}

এটি আপনি যা করতে চান তা মোটামুটিভাবে করা উচিত। এটি ওয়েবভিউ থেকে এইচটিএমএল কোড পাওয়া সম্ভব এবং তার উত্তরের জন্য https://stackoverflow.com/users/325081/aymon-fournier থেকে চিৎকার করা সম্ভব কি তা থেকে অভিযোজিত


এইচটিপিপ্লেইন্ট এপিআই লেভেল 22 এ অবনতি হয়েছে এবং এপিআই লেভেল 23 এ সরানো হয়েছে। সুতরাং আপনার কোডে উল্লিখিত ক্লাসগুলি জাভা ফাইলগুলিতে আমদানি করা যায় না।
ধনঞ্জয় এম

1

ওয়েবভিউ থেকে এইচটিএমএল উত্তোলনের চেষ্টা করার পরিবর্তে আমি পরামর্শ দেব, আপনি ইউআরএল থেকে এইচটিএমএলটি বের করুন। এর মাধ্যমে, আমার অর্থ আপনার জন্য এইচটিএমএলকে অতিক্রম করার জন্য একটি তৃতীয় পক্ষের লাইব্রেরি যেমন JSoup ব্যবহার করা। নিম্নলিখিত কোডটি আপনার জন্য একটি নির্দিষ্ট URL থেকে এইচটিএমএল পাবে

public static String getHtml(String url) throws ClientProtocolException, IOException {
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpGet httpGet = new HttpGet(url);
        HttpResponse response = httpClient.execute(httpGet, localContext);
        String result = "";

        BufferedReader reader = new BufferedReader(
            new InputStreamReader(
                response.getEntity().getContent()
            )
        );

        String line = null;
        while ((line = reader.readLine()) != null){
            result += line + "\n";
        }
        return result;
    }

মনে করুন ইউআরএল প্রাপ্ত তথ্য পোস্ট করে পৌঁছেছে। এই পদ্ধতি ব্যর্থ হবে।
জাফর আলী

এছাড়াও কুকিজ সম্পর্কে কি?
কিথ অ্যাডলার

0

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

  public class htmldecoder extends Activity implements OnClickListener,TextWatcher
    {
    Button btsubmit; // this button in your xml file
    WebView wvbrowser;
    public void onCreate(Bundle savedInstanceState)
    {
                super.onCreate(savedInstanceState);
                    setContentView(R.layout.htmldecoder);



        btsubmit=(Button)findViewById(R.id.btsubmit);
        btsubmit.setOnClickListener(this);

        wvbrowser=(WebView)findViewById(R.id.wvbrowser);
        wvbrowser.setWebViewClient(new HelloWebViewClient());
        wvbrowser.getSettings().setJavaScriptEnabled(true);
        wvbrowser.getSettings().setPluginsEnabled(true);
        wvbrowser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        MyJavaScriptInterface myinterface=new MyJavaScriptInterface();
        wvbrowser.addJavascriptInterface(myinterface,"interface");
        webView.loadUrl("file:///android_asset/simple.html");  //use one html file for //testing put your html file in assets. Make sure that you done JavaScript methods to get //values for html content in html file . 
   }
   public void onClick(View v)
{
    if(btsubmit==v)
    {

        webView.loadUrl("javascript:showalert()");// call javascript method.  
        //wvbr
    }
}

final class MyJavaScriptInterface {



        MyJavaScriptInterface() {

        }

        public void sendValueFromHtml(String value) {
           System.out.println("Here is the value from html::"+value);
        }

    }

}

এইচটিএমএলে আপনার জাভাস্ক্রিপ্ট

 <script type="text/javascript">
    //<![CDATA[
    var n1;
    function callme(){
    n1=document.getElementById("FacadeAL").value;
    }
    function showalert(){
     window.interface.sendValueFromHtml(n1);// this method calling the method of interface which //you attached to html file in android. // & we called this showalert javasript method on //submmit buttton click of android. 
    }
    //]]>
    </script>

& আপনি এইচটিএমএলে নীচের মত কলমে কল করেছেন তা নিশ্চিত করুন

<input name="FacadeAL" id="FacadeAL" type="text" size="5" onblur="callme()"/>
আশা করি এটা তোমাকে সাহায্য করবে।


এর অর্থ & Make sure you calling callme like below in htmlকী? আপনি কি এইচটিএমএল ফাইলটিতে স্ক্রিপ্টের নীচে ইনপুট ট্যাগটি রাখার অর্থ দিচ্ছেন? Thank You

না বউ আপনাকে এইচটিএমএল ট্যাগে ইনপুট টাইপ পাঠ্যের জাভাস্রিপ্ট পদ্ধতি কলমে () কল করতে হবে।
মিঃ সাজিদ শায়খ

তাহলে এই ইনপুট ট্যাগটি কোথায় যুক্ত করবেন? এই বোতামটি দৃশ্যমান?

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

আপনি কি আমাকে এই সমস্যার সমাধান করতে সহায়তা করতে পারেন? Thank you very much

0

আমি আপনার কিছুটা প্রতিফলন পদ্ধতির চেষ্টা করার পরামর্শ দিই, যদি আপনার ডিবাগারে ব্যয় করার সময় থাকে (দুঃখিত তবে আমার কাছে নেই)।

ক্লাসের loadUrl()পদ্ধতি থেকে শুরু android.webkit.WebView:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/webkit/WebView.java#WebView.loadUrl%28java.lang.String % 2Cjava.util.Map% 29

আপনার android.webkit.BrowserFrameসেই কলটি nativeLoadUrl()নেটিভ পদ্ধতিতে পৌঁছানো উচিত :

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/webkit/BrowserFrame.java#BrowserFrame.nativeLoadUrl%28java.lang.String % 2Cjava.util.Map% 29

নেটিভ পদ্ধতির বাস্তবায়ন এখানে হওয়া উচিত:

http://gitorious.org/0xdroid/external_webkit/blobs/a538f34148bb04aa6ccfbb89dfd5fd784a4208b1/WebKit/android/jni/WebCoreFrameBridge.cpp

তোমার মঙ্গল কামনা করি!


-1

এইচটিপিপ্লিনেন্টকে সেফির মতো ব্যবহার করার চেষ্টা করুন:

public String getHtml(String url) {
    HttpClient vClient = new DefaultHttpClient();
    HttpGet vGet = new HttpGet(url);
    String response = "";    

    try {
        ResponseHandler<String> vHandler = new BasicResponseHandler();
        response = vClient.execute(vGet, vHandler);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return response;
}

আপনি কি একটি সহজ কাজের উদাহরণ দেখাতে পারেন। আমি আপনার কোডটি সেফির উদাহরণে প্রয়োগ করতে পারি না
কেজে

এই পদ্ধতিটি প্রদত্ত ইউআরএলটির এইচটিএমএল উত্স পাবে। অর্থাত্ getHtml ( google.com ); আপনি গুগলের মূল পৃষ্ঠার উত্স পাবেন
ক্রিস্টোপার হান্স

ঠিক আছে.এখানে ওয়েবভিউ উত্স পাওয়ার জন্য কোনও বিকল্প নেই। THANKS
কিরান কেজে

এটি কিছুটা আমার পক্ষে কাজ করে নি। আমি কোনও পরীক্ষার সাইট থেকে কোনও সামগ্রী পাইনি যা সামগ্রী "হ্যালো ওয়ার্ল্ড" ছিল।
মোমরো

-2

উপরের প্রদত্ত পদ্ধতিগুলির জন্য যদি আপনার কোনও ওয়েব ইউআরএল থাকে তবে আপনার যদি স্থানীয় একটি এইচটিএমএল থাকে তবে আপনি এই কোড দ্বারা এইচটিএমএলও রাখতে পারেন

AssetManager mgr = mContext.getAssets();
             try {
InputStream in = null;              
if(condition)//you have a local html saved in assets
                            {
                            in = mgr.open(mFileName,AssetManager.ACCESS_BUFFER);
                           }
                            else if(condition)//you have an url
                            {
                            URL feedURL = new URL(sURL);
                  in = feedURL.openConnection().getInputStream();}

                            // here you will get your html
                 String sHTML = streamToString(in);
                 in.close();

                 //display this html in the browser or web view              


             } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
             }
        public static String streamToString(InputStream in) throws IOException {
            if(in == null) {
                return "";
            }

            Writer writer = new StringWriter();
            char[] buffer = new char[1024];

            try {
                Reader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));

                int n;
                while ((n = reader.read(buffer)) != -1) {
                    writer.write(buffer, 0, n);
                }

            } finally {

            }

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