بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
دریافت سورس سایت لود شده در webview (حل شد)
سلام
آیا راهی وجود داره که بشه سورس سایت لود شده در 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");
پاسخ به سوال
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 رو چی بنویسم؟ هرچی مینویسم عینا نشون داده میشه
پاسخ به سوال
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 اضافه کن.
پاسخ به سوال
one
9 سال پیش
0
0
چرا روی api15 کار نمیکنه؟
اون کلاسی که قراره با کد جاوا کار کنه و اطلاعات رو بگیره اصلا اجرا نمیشه؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .