نمایش یک صفحه اینترنتی در یک activity ، با WebView در برنامه نویسی اندروید
در این آموزش، یک برنامه اندروید می سازیم که اولین صفحه آن (activity اصلی)، یک WebView است که برای مشاهده یک صفحه اینترنتی به کار می رود.
در برنامه eclipse ، ابتدا یک پروژه اندروید با نام Kelidestan.com بسازید (نام package را برابر com.example.kelidestan انتخاب کنید. نام activity اصلی را برابر Activity1 انتخاب کنید و فایل xml متناظر آن را هم، activity_activity1 انتخاب کنید).
ابتدا فایل activity_activity1.xml را باز می کنیم. این فایل، به صورت گرافیکی، همانند شکل زیر می باشد :
 
					TextView موجود در فایل xml را حذف می کنیم و سپس، مطابق گزینه های مشخص شده در شکل بالا، یک WebView را به درون فایل xml وارد می کنیم. شکل حاصل، به صورت زیر خواهد بود :
 
					WebView را بزرگتر می کنیم (با کشیدن مرزهای آن) :
 
					در properties مربوط به WebView ، نگاه می کنیم تا ببینیم id مربوط به WebView چیست :
 
					بنابراین id مربوط به WebView ، برابر webView1 می باشد.
خوب، اکنون فایل Activity1.java که همان activity اصلی می باشد را باز می کنیم. کدهای آن به صورت زیر می باشد :
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class Activity1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity1, menu);
return true;
}
}
کدها را به صورت زیر تغییر می دهیم :
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
public class Activity1 extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity1);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.loadUrl("http://www.kelidestan.com/android/android_application.php");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity1, menu);
return true;
}
}
بخش هایی که افزوده شده است را به ترتیب در زیر می نویسیم تا آنها را متوجه بشوید :
بخش اول :
بخش دوم :
بخش سوم :
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.loadUrl("http://www.kelidestan.com/android/android_application.php");
همان طور که مشاهده می کنید، آدرس اینترنتی http://www.kelidestan.com/android/android_application.php را به عنوان صفحه اینترنتی مورد نظرمان تعیین کرده ایم که هنگام اجرا شدن برنامه اندروید، درون WebView نمایش داده خواهد شد.
در مرحله آخر، فایل AndroidManifest.xml را باز می کنیم. این فایل دارای کدهای زیر می باشد :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.kelidestan"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.kelidestan.Activity1"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
باید خط زیر را در میان کدهای فایل AndroidManifest.xml قرار بدهیم :
این خط از کدها، اجازه دسترسی به اینترنت را می دهد و اگر شما آن را ننویسید، عملا برنامه اندروید قادر نخواهد بود که به اینترنت متصل شود (این اجازه به برنامه اندروید داده نمی شود).
پس از افزودن این کد، کدهای فایل AndroidManifest.xml به صورت زیر خواهد بود :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.kelidestan"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.kelidestan.Activity1"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
حالا اگر برنامه مورد نظر را اجرا کنید، برنامه به اینترنت متصل شده و صفحه اینترنتی http://www.kelidestan.com/android/android_application.php را نمایش می دهد.
 Mmh
 Mmh  خیلی ممنون از آموزشتون من خیلی استفاده کردم تا اینجا کار
انشاالله ادامه رو هم بخونم 
خدا خیرتون بده 
خسته نباشید  
 امیر
 امیر  سلام و تشکر از آموزشهای خوبتون.
من طبق آموزش شما پیش رفتم ولی سایت رو داخل پنجره WebView تو برنامه باز نمیکنه و مرورگر باز میشه و سایت رو تو اون باز میکنه
لطفا راهنمایی کنید
باتشکر 
 امیر
 امیر  این خط کد رو باید وارد کنی که تو خود WebView باز کنه سایت رو وگرنه تو مرورگر بازش میکنه
 
 فرزاد
 فرزاد سلام دوست عزیز. ممنون از مطالب و سایت خوبتون. میخواستم بدونم که چطوری میشه که با اشارهٔ کاربر بر روی یک دکمه، یک فایل html در برنامه، نمایش داده بشه. ممنون میشم راهنمایی کنید. خیلی ممنون
 admin
 admin  سلام.
ابتدا آموزش چگونگی نمایش یک فایل HTML قرار گرفته در پوشه assets از پروژه اندروید، در یک WebView را بخوانید :
سپس باید کد مربوط به  نمایش فایل HTML ، هنگام کلیک بر روی یک دکمه (Button) اجرا شود که در این زمینه، باید کلید زیر را بخوانید :
 
 behroz
 behroz با سلام ببخشید من کدها را دقیقا مثل این کدها وارد کرده ام اما وقتی برنامه رو اجرا میکنم ارور webpage not available رو میاره واقعا ممنون میشم کمکم بفرمایید
 حمید
 حمید  با سلام و ممنونم از سایت پر محتوای شما
خیلی خیلی استفاده کرده و میکنم از مطالبتون
موفق باشید 
 نوید
 نوید  سلام 
دو مورد اشتباه تایپی دارید
در properties مربوط به TextView ، نگاه می کنیم تا ببینیم id مربوط به TextView چیست : 
 webview باید باشه 
در خط بعدیش هم همین اشتباه وجود داره. 
 admin
 admin  سلام.
از تذکر شما متشکرم.
دو اشتباه مورد نظر در متن آموزش، تصحیح شدند.
 
 مرتضی
 مرتضی  با سلام وتشکر از آموزش کاملتون
میخواستم بدونم راهی وجود داره که من فقط یک خط مورد نیازمو از صفحه وب دانلود کنم...
ممنونم 
 Reza Mo
 Reza Mo با اینکه کدام رو کامل وارد کردم، مینویسه صفحه وب در دسترس نیست
 علی اهنگر
 علی اهنگر سلام برای من وب سایت ها ای که http هستند رو نمایش نمیده چیکار کنم اونارو هم نمایش بده
 
 