آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

نمایش یک صفحه اینترنتی در یک activity ، با WebView در برنامه نویسی اندروید

در این آموزش، یک برنامه اندروید می سازیم که اولین صفحه آن (activity اصلی)، یک WebView است که برای مشاهده یک صفحه اینترنتی به کار می رود.

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام Kelidestan.com بسازید (نام package را برابر com.example.kelidestan انتخاب کنید. نام activity اصلی را برابر Activity1 انتخاب کنید و فایل xml متناظر آن را هم، activity_activity1 انتخاب کنید).

ابتدا فایل activity_activity1.xml را باز می کنیم. این فایل، به صورت گرافیکی، همانند شکل زیر می باشد :

نمایش یک صفحه اینترنتی در یک activity ، با WebView در برنامه نویسی اندروید

TextView موجود در فایل xml را حذف می کنیم و سپس، مطابق گزینه های مشخص شده در شکل بالا، یک WebView را به درون فایل xml وارد می کنیم. شکل حاصل، به صورت زیر خواهد بود :

نمایش یک صفحه اینترنتی در یک activity ، با WebView در برنامه نویسی اندروید

WebView را بزرگتر می کنیم (با کشیدن مرزهای آن) :

نمایش یک صفحه اینترنتی در یک activity ، با WebView در برنامه نویسی اندروید

در properties مربوط به WebView ، نگاه می کنیم تا ببینیم id مربوط به WebView چیست :

نمایش یک صفحه اینترنتی در یک activity ، با WebView در برنامه نویسی اندروید

بنابراین id مربوط به WebView ، برابر webView1 می باشد.

خوب، اکنون فایل Activity1.java که همان activity اصلی می باشد را باز می کنیم. کدهای آن به صورت زیر می باشد :


package com.example.kelidestan;

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;
        }

}

کدها را به صورت زیر تغییر می دهیم :


package com.example.kelidestan;

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;
        }

}

بخش هایی که افزوده شده است را به ترتیب در زیر می نویسیم تا آنها را متوجه بشوید :

بخش اول :


import android.webkit.WebView;

بخش دوم :


private WebView webView;

بخش سوم :


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");

همان طور که مشاهده می کنید، آدرس اینترنتی http://www.kelidestan.com/android/android_application.php را به عنوان صفحه اینترنتی مورد نظرمان تعیین کرده ایم که هنگام اجرا شدن برنامه اندروید، درون WebView نمایش داده خواهد شد.

در مرحله آخر، فایل AndroidManifest.xml را باز می کنیم. این فایل دارای کدهای زیر می باشد :


<?xml version="1.0" encoding="utf-8"?>
<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 قرار بدهیم :


<uses-permission android:name="android.permission.INTERNET" />

این خط از کدها، اجازه دسترسی به اینترنت را می دهد و اگر شما آن را ننویسید، عملا برنامه اندروید قادر نخواهد بود که به اینترنت متصل شود (این اجازه به برنامه اندروید داده نمی شود).

پس از افزودن این کد، کدهای فایل AndroidManifest.xml به صورت زیر خواهد بود :


<?xml version="1.0" encoding="utf-8"?>
<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 را نمایش می دهد.

نویسنده علیرضا گلمکانی
شماره کلید 224
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 12 12 0
Mmh
۱۳۹۵/۰۸/۱۷
۰۹:۴۹

خیلی ممنون از آموزشتون من خیلی استفاده کردم تا اینجا کار
انشاالله ادامه رو هم بخونم 
خدا خیرتون بده 
خسته نباشید 

امیر
۱۳۹۵/۰۸/۲۶
۱۱:۲۵

سلام و تشکر از آموزشهای خوبتون.
من طبق آموزش شما پیش رفتم ولی سایت رو داخل پنجره WebView تو برنامه باز نمیکنه و مرورگر باز میشه و سایت رو تو اون باز میکنه
لطفا راهنمایی کنید
باتشکر

امیر
۱۳۹۵/۰۸/۲۶
۱۱:۴۵

این خط کد رو باید وارد کنی که تو خود WebView باز کنه سایت رو وگرنه تو مرورگر بازش میکنه

کد:
webView.setWebViewClient(new WebViewClient());

فرزاد
۱۳۹۶/۰۷/۲۸
۱۰:۴۹

سلام دوست عزیز. ممنون از مطالب و سایت خوبتون. میخواستم بدونم که چطوری میشه که با اشارهٔ کاربر بر روی یک دکمه، یک فایل html در برنامه، نمایش داده بشه. ممنون میشم راهنمایی کنید. خیلی ممنون

admin
۱۳۹۶/۰۸/۰۷
۱۹:۲۳

سلام.
ابتدا آموزش چگونگی نمایش یک فایل HTML قرار گرفته در پوشه assets از پروژه اندروید، در یک WebView را بخوانید :

کلید شماره 2633

سپس باید کد مربوط به  نمایش فایل HTML ، هنگام کلیک بر روی یک دکمه (Button) اجرا شود که در این زمینه، باید کلید زیر را بخوانید :

کلید شماره 2728

Flower

behroz
۱۳۹۶/۰۸/۲۱
۱۰:۵۶

با سلام   ببخشید من کدها را دقیقا مثل این کدها وارد کرده ام اما وقتی برنامه رو اجرا میکنم ارور webpage not available رو میاره   واقعا ممنون میشم کمکم بفرمایید

حمید
۱۳۹۷/۱۱/۲۵
۱۰:۵۹

با سلام و ممنونم از سایت پر محتوای شما
خیلی خیلی استفاده کرده و میکنم از مطالبتون
موفق باشید

نوید
۱۳۹۸/۰۴/۲۵
۰۱:۳۶

سلام
دو مورد اشتباه تایپی دارید
در properties مربوط به TextView ، نگاه می کنیم تا ببینیم id مربوط به TextView چیست :

 webview باید باشه
در خط بعدیش هم همین اشتباه وجود داره.

admin
۱۳۹۸/۰۴/۲۵
۲۲:۱۵

سلام.
از تذکر شما متشکرم.
دو اشتباه مورد نظر در متن آموزش، تصحیح شدند.

Flower

مرتضی
۱۳۹۹/۰۱/۲۰
۱۵:۱۸

با سلام وتشکر از آموزش کاملتون
میخواستم بدونم راهی وجود داره که من فقط یک خط مورد نیازمو از صفحه وب دانلود کنم...
ممنونم

Reza Mo
۱۴۰۰/۰۳/۰۷
۲۳:۵۴

با اینکه کدام رو کامل وارد کردم، می‌نویسه صفحه وب در دسترس نیست

علی اهنگر
۱۴۰۰/۰۵/۰۱
۱۳:۰۸

سلام برای من وب سایت ها ای که http هستند رو نمایش نمیده چیکار کنم اونارو هم نمایش بده

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)