واکنون ایزی گرام 3 | ایزی گرام 3 با کلی امکانات جدید منتشر شد | کلیک کنید

آموزش کار با وب ویو در اندروید

دسته‌بندی: آموزش
شهریور ۱۹, ۱۳۹۷

آموزش کار با وب ویو در اندروید

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

امروزه گوشی های هوشمند مورد استفاده ی سیل عظیمی از افراد قرار می گیرد. بنابراین لزوم تولید اپلیکیشن ها بر روی سیستم عامل های گوناگون بیش از پیش احساس می شود. از طرفی صفحه های وب و وبسایت ها فراگیرتر بوده و ویژگی های منحصربه فرد خود را در میان کاربران دارد. وجود حلقه ای پیوند دهنده میان وبسایت و اپلیکیشن موجب می شود تا استفاده کنندگان از وبسایت به صورت ثابت و با استفاده از وب ویو ها بر روی گوشی های هوشمند خود دریچه ای اختصاصی از وبسایت شما را داشته باشند.

 

وب ویو چیست؟

در آغاز توضیح کوتاهی پیرامون ساختار وب ویو برای شما آورده ایم.

Webview و یا وب ویو یک نوع نمایش است که صفحات وب را درون برنامه ی شما نشان می دهد. شما  می توانید رشته ی HTML را معلوم کرده و با استفاده از webview آن را داخل برنامه ی خود به نمایش در آورید.  وب ویو برنامه ی شما را به یک برنامه ی وب تبدیل می کند و نمایش دهنده ی صفحات وب برای شما خواهد بود.

 

وب ویو در اندروید صفحات وب شما را در قالب برنامه ی APK اندرویدی در اختیارتان قرار خواهد داد. به طور کلی Web view برای به نمایش در آوردن  وبسایت و کدهای Html مورد استفاده قرار می گیرد.
کار با وب ویو ساده تر از آن چیزی است که فکر می کنید. به این دلیل که برای کار کردن با وب ویو احتیاجی به داشتن علم و مهارت برنامه نویسی وب وجود ندارد. البته برای مواقعی که مهارت های حرفه ای تر مورد نیاز است  آموزش های پیشرفته تری را در نظر گرفته ایم.

کار با وب ویو در اندروید

در این قسمت کار با وب ویو را اغاز می نماییم.
پروژه ی جدیدی را شروع کرده و در بخش پالت ها، ابزار WebView را از پوشه Containers به لایه اپلیکیشن درگ می کنیم.

 

وب ویو

در این قسمت خواص وب ویو را می بینید.

 

<WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

 

در صورتی که WebView متعلق به شما هم همانند پروژه من بدون آی دی بود، به آن آیدی می دهیم.
برای مثال متن زیر را  به وب ویو پروژه خود اضافه می کنیم.

 

android:id="@+id/WebView"

 

پس از این  کد جاوای اصلی MainActivity  را مد نظر قرار می دهیم تا کدی بنویسیم که یک صفحه وب را در اپلیکیشن اندرویدی خود، داشته باشیم.

با افزودن کد زیر در کد اصلی جاوا، باعث می شوید که صفحه گوگل ، در قسمت وب ویو اپلیکیشن اندرویدی شما قابل مشاهده باشد. البته هر آدرس سایتی می تواند با این روش مشاهده گردد و تنها گوگل مد نظر ما نیست.

 

WebView web = (WebView) findViewById(R.id.WebView);

web.loadUrl("https://www.google.com/");

 

بنابراین در کل کد جاوای اصلی برنامه به این شکل خواهد بود.

 

package com.gsm_developers.gsm_webview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView web = (WebView) findViewById(R.id.WebView);

        web.loadUrl("https://www.google.com/");
    }
}

 

بعد از اجرای کد، خواهید دید که برنامه ی شما به صفحه ی اینترنت دسترسی نخواهد داشت.

 

وب ویو

 

دلیل این اتفاق به این شکل است  که ما هنوز اجازه دسترسی این برنامه به اینترنت را صادر نکرده ایم.
فایل AndroidManifest در پوشه Manifests قرار دارد. لازم است در این فایل، با قرار دادن یک خط کد به برنامه خود، اجازه دسترسی به اینترنت را بدهیم.

در این مرحله کدهای فایل AndroidManifest را باز کنید، سپس قبل از تگ application یک تگ باز می کنیم و uses-permission را می نویسیم. برنامه ی اندروید استودیو به ما پیشنهاد کامل کردن کد را می دهد که می توانیم مانند عکس زیر، android.permission.Internet را انتخاب کنیم.

همچنین ببینید :   آموزش ساخت چت جعلی تلگرام به همراه آموزش ویدئویی

 

وب ویو

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

 

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

 

بنابراین کد AndroidManifest به این شکل میباشد:

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gsm_developers.gsm_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">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>
        </activity>
    </application>

</manifest>

 

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

 

وب ویو

 

البته نکته مهم در اندروید نسخه ۷ به بالا، ایجاد سیستم امکان دادن دسترسی به اینترنت در زمان اجرا است. که به صورت مجزا در بحث های آتی بررسی خواهیم کرد.

 

متد های تعریف شده در کلاس وب ویو

 

باید توجه داشته باشید که به جز بارگذاری url، با کمک گرفتن از متد های تعریف شده در کلاس WebView شما قادر خواهید بود کنترل بیشتری روی وب ویو داشته باشید. در ادامه این متد ها را به صورت لیست وار برای آشنایی بیشتر شما آورده ایم.

  • ()canGoBack

متد canGoBack() معلوم می کند که آیا WebView دارای یک آیتم back history هست و یا نه.

 

  • ()canGoForward

متد canGoForward() معلوم می کند که آیا WebView دارای یک آیتم forward history هست و یا نه.

 

  • ()clearHistory

متد clearHistory() سابقه ی forward و backward مربوط به WebView را روشن می کند.

 

  • ()destroy

متد destroy() برای از بین بردن وضعیت داخلی WebView است.

 

  • findAllAsync(String find)

متد findAllAsync(String find) همه ی نمونه های رشته را یافته و آنها را معلوم میکند.

 

  • ()getProgress

متد getProgress() نشان دهنده ی پیشرفت صفحه ی فعلی است.

 

  • ()getTitle

متد getTitle() موجب بازگردانی تیتر صفحه ی فعلی می شود.

 

  • ()getUrl

متد  getUrl() باعث بازگردانی یو آر ال صفحه ی فعلی می شود.

 

در صورتی که بر روی هر لینک از صفحه ی وب در داخل وب ویو کلیک کنیم، آن صفحه در داخل WebView شما بارگذاری نمی شود. برای این کار باید کلاس شما از WebViewClient ارث بری کند و متد آن اجرا شود. به این روش می توانید این کار را انجام دهید.

 

private class MyBrowser extends WebViewClient {
 @Override
 public boolean shouldOverrideUrlLoading(WebView view, String url) {
 view.loadUrl(url);
 return true;
 }
}

 

مثال

در این قسمت مثالی را خواهید دید که استفاده از لایه ی وب ویو را شرح می دهد. این مثال یک برنامه ی وب پایه به وجود می آورد که از شما در مورد مشخص کردن یک url سوال می کند و وب سایت این url را در داخل وب ویو به نمایش خواهد گذاشت.

برای درست کردن این مثال نباید آن را روی دستگاهی اجرا کنید که به اینترنت وصل است.

برای به وجود اوردن یک برنامه ی اندروید از محیط برنامه نویسی مربوطه استفاده کنید و آن را با عنوان وب ویو به عنوان بسته ی com.PRG.webview اسم گذاری نمایید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK باشند تا از سطح های بالاتر API استفاده کنید.

 

فایل src/MainActivity.java را برای اضافه کردن کد وب ویو تغییر دهید.

res/layout/activity_main را برای اضافه کردن مولفه های XML مربوطه تغییر دهید.

AndroidManifest.xml را برای اضافه کردن اجازه های لازم مورد تغییر قرار دهید.

در آخر برنامه را اجرا نمایید و یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب نمایید سرانجام  نتیجه را بررسی کنید.

 

پیام بگذارید


تومان