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

اسفند 29, 1397| سنا عبادی
آموزش کار با کمپوننت وب ویو در برنامه نویسی اندروید | مارکت سورس اندرویدریور

در این مقاله از وبلاگ مارکت اندرویدریور آموزش کار با 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.net/");

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

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

همچنین بخوانید :  آموزش Export / Import سورس اندروید در اندروید استدیو

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


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

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

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

public class MainActivity extends Activity  {
   Button b1;
   EditText ed1;
private String url ="https://androidriver.net/";
   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>

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

همچنین بخوانید :  آموزش ساخت صفحه اسپلش در اندروید استدیو
4.5/5 (2 Reviews)
سنا عبادی CO-Founder نویسنده مقاله

توسعه دهنده موبایل به ویژه سیستم عامل اندروید ، هم بنیانگذار اندروید ریور و در تلاش برای تحقق یک رویا..



می تونی سنا عبادی رو توی شبکه های اجتماعی هم دنبال کنی ...

مقالات مرتبط را بخوانید :


سورس های اندروید شامل تخفیف رو ببین !

به این مقاله امتیاز دهید :
4.5/5 (2 Reviews)
  خرید سورس های حرفه ای بازی و اپلیکیشن اندروید

  تخفیف ها و اخبار ویژه رو در تلگراممون دنبال کن :)

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

دیدگاه

  • Mansour Caregar
    فروردین 22, 1399

    با سلام وقت بخیر
    ممنون بابت اموزش خوبتون من دارم یک کتاب مینویسم ک متنشو میخوام تو قالب html بنویسم (نمیخوام صفحه html به صورت از پیش ساخته شده رو پوشه asset قرار بدم) تکه کد رو در انتها میزارم
    مشکلم اینه ک میخوام عکس و لینک و متن رو در دیتابیس بزارم و در وب ویو نمایش بدم منتهی عکس و لینک نمایش داده نمیشه
    لینک سفید میشه و ری اکشنی نداره البته تو شبیه ساز امتحان کردم
    عکس هم بالا نمیاد کلا
    میخواستم بدونم وب ویوو قدرت خوندن کد های html رو داره ؟

    تکه کد من در دیتا بیس:

    در ۳ سپتامبر ۲۰۱۳ توسعه‌دهندگان اندروید به‌طور رسمی اعلام کردند که با شرکت نستله، که از شرکت‌های مطرح صنعت شکلات‌سازی جهان می‌باشد، همکاری خواهند کرد. در همین راستا نگارش ۴٫۴ سیستم‌عامل اندروید، کیت‌کت نام گرفت. کیت کت از مارک‌های معروف شکلات است که توسط شرکت نستله تولید می‌شود.

    نمیدونم تونستم سوالمو واضح بپرسم یا نه
    اگر کمکم کنید خیلی خیلی ممنونتون میشم 🙂

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

راهنما : برای نوشتن موارد مختلف در دیدگاه می توانید از راهنمای نگارش اندروید ریور استفاده کنید : نگارش کد کوتاه `your code`
نگارش کد بلند یا نگارش بخش عمده یک سورس کد :
[sourcecode lang="your code language"] your code here [/sourcecode]