کار با WebView (وب ویو) در اندروید

مارس 20, 2019| سنا عبادی
آموزش کار با کمپوننت وب ویو در برنامه نویسی اندروید | مارکت سورس اندرویدریور

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

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

نحوه کار با WebView در برنامه نویسی اندروید

برای اضافه کردن این کامپونتت در لایه ی XML خود به راحتی میتوانید مانند زیر عمل کنید :

<WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />

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

WebView browser = (WebView) findViewById(R.id.webview);

برای اینکه لینک صفحه ایی که قرار است در وب ویو نمایش داده شود را به آن معرفی کنید از متد loadUrl(String url) استفاده میکنیم و به صورت زیر آن را پیاده میکنیم :


browser.loadUrl("https://androidriver.ir/");

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

همچنین بخوانید :  آموزش Flutter : ویجت چیست ؟

1.() canGoBack : این متد نشان دهنده ی أن است که وب ویو خاصیت برگشت به تاریخچه ی آیتم ها است.
2.() canGoForward : این متد نیز نشان دهنده ی ان است که وب ویو خاصیت به رفتن به جلو در تاریخچه ی آیتم ها است.
3. () clearHistory : این متد تاریخچه ی رو به حلو و نیز عقبه ی آن را به طور کامل پاک می کند.
4.destroy() : این متد برای از بین بردن حالت داخلی وب ویو است.
5.findAllAsync(String find) : این متد برای یافتن نمونه هایی از نوشته ها است که آن ها را برجسته می کند.
۶.getProgress() : این متد پیشرفت صفحه فعلی را می گیرد.
۷.getTitle() : این متد عنوان صفحه ی فعلی را می گیرد.
۸.getUrl() : این متد url صفحه ی فعلی را می گیرد.

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


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

در این صورت شما می توانید لینکی که در وب ویو است را باز کنید.

همچنین بخوانید :  رفع خطا Could not find Gradle 3.3 در اندروید استدیو

برای مثال شما یک اکتیویتی جاوایی به این صورت خواهید داشت که با کلیک بر دکمه ی موجود url دلخواه خود را نمایش دهید .
و با استفاده از خط کد wv1.setWebViewClient(new MyBrowser()); شما این قابلیت را به وب ویو خود اضافه خواهید کرد.

public class MainActivity extends Activity  {
   Button b1;
   EditText ed1;
private String url ="https://androidriver.ir/";
   private WebView wv1;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      b1=(Button)findViewById(R.id.button);
      ed1=(EditText)findViewById(R.id.editText);

      wv1=(WebView)findViewById(R.id.webView);
      wv1.setWebViewClient(new MyBrowser());

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String url = ed1.getText().toString();

            wv1.getSettings().setLoadsImagesAutomatically(true);
            wv1.getSettings().setJavaScriptEnabled(true);
            wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
            wv1.loadUrl(url);
         }
      });
   }

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

و در آخر حتما در فایل AndroidManifest.xml خود مجوز اینترنت را صادر کنید :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" >
   <uses-permission android:name="android.permission.INTERNET" />
   <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
      
      <activity android:name=".MainActivity" 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>

تمام کاری که باید انجام دهید این است .

راستی اگه توسعه دهنده اندروید هستی ، میتونی سورس ها خودت رو در مارکت اندروید ریور بفروشی و کسب درآمد فوق العاده ای داشته باشی برای شروع اینجا کلیک کن و برای اطلاع از تخفیف ها و محصولات ویژه در تلگرام اندروید ریور رو دنبال کن عضویت در کانال

مارکت اندروید ریور
  پیوستن به کانال تلگرام اندروید ریور

دسته‌ها: آموزش برنامه نویسی اندروید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *