آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دریافت سورس سایت لود شده در webview (حل شد)

mtn67  11 سال پیش  9 سال پیش
+4 0

سلام

آیا راهی وجود داره که بشه سورس سایت لود شده در webview رو دریافت کرد؟ خیلی گشتم راهی پیدا نکردم.

0 0
هیچ کس نظری، راه حلی، پیشنهادی نداره؟؟؟؟؟؟؟؟؟؟؟ (11 سال پیش)
0 0
دنبال webArchive باش (11 سال پیش)
0 0
از webArchiv نتونستم به جایی برسم راه دیگه ایی نیست؟مثلا از طریق جاوا اسکریپت نمیشه کاری کرد؟اصلا فکر نمیکردم گرفتن سورس webView اینقدر سخت باشه (11 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
کاشی زاده  11 سال پیش
+2 0

با استفاده از جاوا اسکریپت میشه .

فعال کردن قابلیت لود جاوا اسکریپت

 webview.getSettings().setJavaScriptEnabled(true);

ابتدا نوشتن کلاسی به عنوان رابط اندروید و وب :

 classMyJavaScriptInterface{
public
void processHTML(String html){
// process the html as needed by the app

}
}

اضافه کردن رابط اندروید به وب ویو :

 webview.addJavascriptInterface(newMyJavaScriptInterface(),"HTMLOUT");

اضفه کردن لیسنر های وب ویو :

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

و در نهایت هم لود صفحه وب :

 webview.loadUrl("http://lexandera.com/files/jsexamples/gethtml.html");

 

 

0 0
مرسی بابت راهنمایی.همه کارهایی ک گفتی انجام دادم کلاس رابط اندرویید و وب رو هم از یه جا دیگه پیدا کردم نوشتم فقط خروجی رو چجوری دخل یک String بریزم؟؟؟ (11 سال پیش)
+1 0
متد processHTML خروجی html رو بهتون میده و میتونید هرکاری دوست دارید بکنید . (11 سال پیش)
پاسخ به سوال 
mtn67  11 سال پیش
+1 0

نمیدونم چرا نمیتونم خروجی بگیرم.من اینجوری از متد processHTML  استفاده میکنم :

class MyJavaScriptInterface
        {

            public void processHTML(String html)
{ Toast.makeText(getBaseContext(), "" + html, Toast.LENGTH_LONG).show(); } } 

MyJavaScriptInterface run = new MyJavaScriptInterface(); run.processHTML(؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟);

ورودی processHTML  رو چی بنویسم؟ هرچی مینویسم عینا نشون داده میشه

+1 0
من کد رو بالا نوشتم ، شما نیازی نیست متد رو صدا بزنید خود وب ویو صدا میزینه (11 سال پیش)
+1 0
بله درسته.یک دنیا تشکر.خیلی وقته دنبالش بودم.مرسی (11 سال پیش)
0 0
دوست عزیز mtn67 این پروژه الان برای شما کار می کنه ؟ من تست کردم برام جواب نداد ، نمیدونم اشتباه کد نویسی کردم ، کد کامل برنامه توی کدوم قسمتشه ؟ ممنون (11 سال پیش)
+1 0
بله به درستی کار کرد خیلی ساده است.کد کاملشو پایین مینویسم (11 سال پیش)
پاسخ به سوال 
mtn67  11 سال پیش
+4 0

 package com.example.app.get_site_html_code;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;


public class GetSiteHtmlCodeActivity extends Activity {

    final Context   myApp = this;
    private WebView wb;


    class MyJavaScriptInterface
    {

        @SuppressWarnings("unused")
        public void showHTML(String html)
        {
            Toast.makeText(getBaseContext(), "" + html, Toast.LENGTH_LONG).show();
        }
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        wb = (WebView) findViewById(R.id.wb);
        wb.getSettings().setJavaScriptEnabled(true);
        wb.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
        wb.setWebViewClient(new WebViewClient());
        wb.loadUrl("http://google.com");
        startinga();

    }


    public void startinga() {
        wb.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageFinished(WebView view, String url) {
                wb.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");

            }
        });
    }
}

در منیفست دسترسی به اینترنت یادت نره.در لایوت هم یک weview اضافه کن.

0 0
mtn67 این کد وقتی اطلاعات تغییر میکنه در دیتابیس آنلاین در وب ویو تغییر ایجاد نمیشه. باید چکار کرد که چک کنه اگه تغییری کرده بود دوباره لود بشه؟ (11 سال پیش)
پاسخ به سوال 
one  9 سال پیش
0 0

چرا روی api15 کار نمیکنه؟

اون کلاسی که قراره با کد جاوا کار کنه و اطلاعات رو بگیره    اصلا اجرا نمیشه؟

0 0
کسی نیست؟ (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .