ورود

View Full Version : مشکل در نمایش سایت در webview



behzad900
شنبه 14 دی 1392, 12:53 عصر
سلام دوستان من یه مشکل کوچیک دارم . یه اپ سادهنوشته شده که میاد یه سایت و داخل خودش نشون میده همه چیز تا اینجا درسته فقط هنگامی که روی لینکی کلیک میشه میره با مرورگر پیش فرض گوگل خودشو باز میکنه من می خوام تمام لینک ها داخل همون صفحه خودش باز شه ممنون میشم کمک کنید.

اینم کد :



package com.app.web;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class app extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView view = new WebView(this);

view.loadUrl("http://google.com");
setContentView(view);

}
}

rubiks.kde
شنبه 14 دی 1392, 13:05 عصر
این کد رو بعد از loadUrl اضافه کن.

view.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
});

behzad900
شنبه 14 دی 1392, 13:14 عصر
ممنونم اما بازم نشد



package com.app.web;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class app extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView view = new WebView(this);

view.loadUrl("http://irna.ir");
setContentView(view);

view.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
});

}
}

rubiks.kde
شنبه 14 دی 1392, 13:24 عصر
دوست عزیز من همین کد رو چندین بار تست کردم ، مشکلی نداره.

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView view = new WebView(this);

view.loadUrl("http://irna.ir");

view.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
});

setContentView(view);
}
}

behzad900
شنبه 14 دی 1392, 13:29 عصر
این ارور و میده مطمئنم یجا اشتباه کردم



-compile:
[javac] Compiling 2 source files to C:\azz\app\bin\classes
[javac] C:\azz\app\src\com\examples\app\app.java:18: error: cannot find symbol
[javac] view.setWebViewClient(new WebViewClient(){
[javac] ^
[javac] symbol: class WebViewClient
[javac] location: class app
[javac] 1 error

rubiks.kde
شنبه 14 دی 1392, 17:41 عصر
شما دارید با چی کامپیل میکنید ؟ از چه محیطی استفاده میکنید ؟؟

به هر حال کامپایلر جاوا WebViewClient رو نمیشناسه.این دو خط رو به import ها اضافه کنید درست میشه.

import android.webkit.WebView;
import android.webkit.WebViewClient;

Programmatore
یک شنبه 15 دی 1392, 01:07 صبح
نه این کد درست کار نمیکنه، فورکلوز میده... برا من که اینطوری شد

rubiks.kde
یک شنبه 15 دی 1392, 01:47 صبح
نه این کد درست کار نمیکنه، فورکلوز میده... برا من که اینطوری شد

شما مجوز مربوط به اینترنت رو به برنامه دادی؟

Programmatore
یک شنبه 15 دی 1392, 02:20 صبح
بعله دادم.. برنامم کار میکرد ولی این مشکلی که دوستمون گفتند رو داشتم که شما راهنمایی کردین ولی زد همه چیرو خراب کرد :لبخندساده: ولی باز خدارو شکر بک آپ داشتم :چشمک:

rubiks.kde
یک شنبه 15 دی 1392, 10:55 صبح
بعله دادم.. برنامم کار میکرد ولی این مشکلی که دوستمون گفتند رو داشتم که شما راهنمایی کردین ولی زد همه چیرو خراب کرد :لبخندساده: ولی باز خدارو شکر بک آپ داشتم :چشمک:

دوست عزیز این چیزی که گفتم رو از خودم که نگفتم . مستندات آندروید این رو میگه و کاملا تست شده هست.ببینید مشکل شما از کجا هست.
اگه هم خواستید یه سرچی توی نت بزنید به تنها روشی که خواهید رسید همینه.چون کار تابع shouldOverrideUrlLoading همین است.

Programmatore
یک شنبه 15 دی 1392, 12:24 عصر
منم جسارت نکردم، صد در صد یه جای کار ما میلنگه :لبخندساده:

behzad900
دوشنبه 16 دی 1392, 00:22 صبح
من با آنت کامپایل می کنم

behzad900
دوشنبه 16 دی 1392, 00:59 صبح
آقا درست شد دستت درد نکنه

behzad900
سه شنبه 24 دی 1392, 15:41 عصر
سلام من یه مشکل دیگه دارم جاوا اسکریپت و داخل webview نمایش نمیده

package com.app.web;
import android.webkit.WebViewClient;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class app extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView view = new WebView(this);

view.loadUrl("http://behzad.co/mobileapp/");
setContentView(view);

view.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){

view.loadUrl(url);
return true;
}
});

}
}

نمیدونم مشکل از کجاست اصلا

rubiks.kde
سه شنبه 24 دی 1392, 15:45 عصر
جاوا اسکریپت رو فعال کنید

vistaWeb.getSettings().setJavaScriptEnabled(true);
vistaWeb.getSettings().setJavaScriptCanOpenWindows Automatically(true);

behzad900
سه شنبه 24 دی 1392, 16:04 عصر
؟این کد کجا قرار میگیره میشه تو کد خودم بزارید بعد نشونم بدید

rubiks.kde
سه شنبه 24 دی 1392, 16:15 عصر
بجای vistaWeb از view استفاده کن . این توابع مربوط به webview هست .بعد از اینکه شی رو ساختی اینا رو هم بنویس

behzad900
سه شنبه 24 دی 1392, 16:29 عصر
/* app.java
* Version 1.0 - Show Google home page
* Copyright (c) 2012 by , Azz.ir
*/
package com.app.web;
import android.webkit.WebViewClient;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class app extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView view = new WebView(this);
viewWeb.getSettings().setJavaScriptEnabled(true);
viewWeb.getSettings().setJavaScriptCanOpenWindows Automatically(true);

view.loadUrl("http://behzad.co/mobileapp/");
setContentView(view);

view.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){

view.loadUrl(url);
return true;
}



});

}
}




اینجوری دیگه؟ اما باز نشد

rubiks.kde
سه شنبه 24 دی 1392, 16:41 عصر
package com.app.web;
import android.webkit.WebViewClient;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class app extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView view = new WebView(this);
view.getSettings().setJavaScriptEnabled(true);
view.getSettings().setJavaScriptCanOpenWindows Automatically(true);

view.loadUrl("http://behzad.co/mobileapp/");
setContentView(view);

view.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){

view.loadUrl(url);
return true;
}



});

}
}

Programmatore
چهارشنبه 25 دی 1392, 17:15 عصر
سلام ، آقا سعید من از تابع shouldOverrideUrlLoading استفاده کردم الان تو WebView روی هر لینکی که انتخاب کنم توی خود WebView نمایش میده اما وقتی میخوام برگردم عقب از WebView خارج میشه، لطفا راهنماییم کنین

rubiks.kde
چهارشنبه 25 دی 1392, 17:20 عصر
شما باید دکمه back رو کنترل کنید اگه webview میتونه بک بشه که بیاد به صفحه قبل والا از اکتیویتی خارج بشه.

مثال کامل :

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(mWebView.canGoBack() == true){
mWebView.goBack();
}else{
finish();
}
return true;
}

}
return super.onKeyDown(keyCode, event);
}