شما این محصولات را انتخاب کرده اید

سبد خرید

شناسه پست: 253
بازدید: 1952

کار با WebView در اندروید استودیو

 
آموزش وب ویو یا WebView
آموزش در کدنویسان جوان 
وب ویو یا WebView ابزار نمایش اندروید برای نشان دادن صفحات وب بصورت پویا  در اندروید محسوب  می شود که از طریق پیوند مناسب وب با ساختار داینامیک اپلیکیشن تا حد ممکن  امکان دستکاری و تغییردهی را برای برنامه نویسان در این محیط فراهم کرده است. برای مثال با پیاده سازی متدهای مورد نیاز ، برنامه نویس قادر خواهد بود فرایند شروع ، لود کردن ، پایان یافتن لود و خطاهای را به خوبی مدیریت بکند.  از این رو اگر می خواهید به عنوان بخشی از رابط کاربر خود HTML را نمایش دهید، می توانید از وب ویو یا WebView در اپلیکیشن خود استفاده کنید:در این مثال  شما با بکارگیری موارد زیردر یک وب ویو آشنا خواهید شد:
۱٫ باز کردن آدرس در وب.
۲٫ نمایش progress bar قبل از بارگذاری کامل صفحه.
۳٫ بازکردن وب در قالب درونی خود وب ویو.
گر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را  ایجاد کنید
اکلیپس :File ⇒ New Android ⇒ Application Project
اندروید استودیو :File ⇒ New  ⇒ New Project
اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk  و نوع اکتیویتی (blank  یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود  را همان MainActivity قرار دهید. بعد از لود کامل برنامه ، در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml  زیر را به آن اضافه کنید:
 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
   <WebView
    android:id="@+id/webView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>
</LinearLayout>
سپس به سراغ کلاس MainActivity  رفته و کدهای زیر به آن اضافه می کنیم:
package com.example.psrd.menuandroid;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
    //private Button button;
    private WebView webView;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Get webview
        webView = (WebView) findViewById(R.id.webView1);
// متدی برای اعمال تنظیمات و کنترل فرایند اجرای وب ویو
        startWebView("http://www.psrd.ir");
    }
    private void startWebView(String url) {
        //Create new webview Client to show progress dialog
        //When opening a url or click on link
        webView.setWebViewClient(new WebViewClient() {
            ProgressDialog progressDialog;
            //باز شدن صفحات در خود وب ویو
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            //نشان دادن میزان پیشرفت قبل از لود کامل
            public void onLoadResource (WebView view, String url) {
                if (progressDialog == null) {
                    // in standard case YourActivity.this
                    progressDialog = new ProgressDialog(MainActivity.this);
                    progressDialog.setMessage("در حال بارگیری...");
                    progressDialog.show();
                }
            }
            public void onPageFinished(WebView view, String url) {
                try{
                    if (progressDialog.isShowing()) {
                        progressDialog.dismiss();
                        progressDialog = null;
                    }
                }catch(Exception exception){
                    exception.printStackTrace();
                }
            }
        });
        // تنظیمات کلی مربوط به وب ویو
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webView.setScrollbarFadingEnabled(false);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.loadUrl(url);
    }
    // Open previous opened link from history on webview when back button pressed
    @Override
    // تعریف عملکرد دکمه بازگشت در خود دیوایس
    public void onBackPressed() {
        if(webView.canGoBack()) {
            webView.goBack();
        } else {
            // Let the system handle the back button
            super.onBackPressed();
        }
    }
}
در نهایت فایل اندروید استودیو را باز کرده و مجوز دسترسی به اینترنت را که در ذیل با رنگ قرمز مشخص شده استبه مانیفیست برنامه خوداضافه می کنیم:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.psrd.Webview">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
پروژه را اجرا کنید
مشکلی داشتید در قسمت دیدگاه بنویسید

هفت + 19 =