مشکل جالب در باز شدن صفحه وب در نرم افزار اندروید
سلام دوستان
در ویدئوی ( نمایش محتویات HTML ) آقای آقاجانی نشون دادند که چجوری در یکی از صفحات خود نرم افزار یک صفحه ی وب رو بارگذاری کنیم. اما من سایت uncocoder.com رو که قرار می دم به درستی در خود نرم افزار باز می کنه اما سایت خودم و چند سایت دیگه مثل گوکل رو که قرار دادم برای باز کردن صفحه ی وب وارد مرورگر گوشی می شه، در صورتی که من می خوام در خود نرم افزار باز شه.
لطفا راهنماییم کنیدیه چیز دیگه می شه یک صفحه ای که کد اچ تی ام الش رو ندارم توی یکی از صفحات برنامه ذخیرش کنم تا برای باز شدنش نیاز به مصرف اینترنت نداشته باشه و سریع باز شه؟
این قطعه کد هست:
WebView Web = (WebView) findViewById(R.id.Web);
Web.loadUrl("http://uncocoder.com");
حالا اگر به جای سایت بزنم www.789-7979.ir وارد مرورگر میشه
اگر می خواید فیلم بگیرم آپلود کنم :)
سلام دوست عزیز از این کد استفاده کنید
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class Main extends Activity {
private WebView mWebview ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebview = new WebView(this);
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
final Activity activity = this;
mWebview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
}
});
mWebview .loadUrl("http://www.google.com");
setContentView(mWebview );
}
}
اینم لینک سورس http://stackoverflow.com/questions/7305089/how-to-load-external-webpage-inside-webview
این و امتحان کن ببین کار می کنه: این کد رو باید در مانیفست برنامه در اکتیویتی که می خواید با چرخش اطلاعاتش از بین نره بذارید:
android:configChanges="keyboard|keyboardHidden|orientation"
با استفاده از قطعه کد زیر در مانیفست و بکاربردن آن در اکتیویتی موردنظر میتونید از LandScape شدن اکتیویتی جلوگیری کنید
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
سلام دوستان
من از کدی که diligenceman گذاشته استفاده کردم بخوبی هم جواب میده
اما مشکلی که پیش میاد اینه که با زدن کلید Back برنامه خارج میشه و به لینک های قبلی که باز شده اند ارجاع داده نمیشه
که با استفاده کردن کد های زیر همه چیز به خوبی کار میکنه <
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class TestingwebviewActivity extends Activity {
ArrayList<String> URLS = new ArrayList<String>();
private WebView webView1;
int backpress = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1 = (Button) findViewById(R.id.button1);
EditText editText1 = (EditText) findViewById(R.id.editText1);
webView1 = (WebView) findViewById(R.id.webView1);
webView1.getSettings().setJavaScriptEnabled(true); // enable javascript
webView1.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(TestingwebviewActivity.this, description, Toast.LENGTH_SHORT).show();
}
});
webView1.loadUrl("http://www.kangannews.ir/index.php?switch_modes=1");
URLS.add("http://www.kangannews.ir/index.php?switch_modes=1");
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Log.i("IN_URL", "" + webView1.getUrl());
}
});
webView1.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
URLS.add(url);
Log.i("Size_1", "" + URLS.size());
for (int i = URLS.size(); i > 0; i--) {
Log.i("URL_1", "" + URLS.get(i - 1));
}
return super.shouldOverrideUrlLoading(view, url);
}
});
}
@Override
public void onBackPressed() {
if (URLS.size() >= 2) {
backpress = 0;
String url = URLS.get(URLS.size() - 2);
webView1.loadUrl(url);
URLS.remove(URLS.size() - 1);
Log.i("Size_2", "" + URLS.size());
for (int i = URLS.size(); i > 0; i--) {
Log.i("URL_2", "" + URLS.get(i - 1));
}
} else if (URLS.size() <= 1) {
Log.i("backpress", "" + backpress);
if (backpress == 0) {
Toast.makeText(TestingwebviewActivity.this, "برای خروج یکبار دیکر تلاش کنید", Toast.LENGTH_SHORT).show();
}
backpress = backpress + 1;
if (backpress > 1) {
this.finish();
}
}
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .