Thứ Ba, 11 tháng 12, 2018

Android - Xem trên web

WebView là một khung nhìn hiển thị các trang web bên trong ứng dụng lập trình Android của bạn. Bạn cũng có thể chỉ định chuỗi HTML và có thể hiển thị chuỗi bên trong ứng dụng của mình bằng WebView. WebView biến ứng dụng của bạn thành ứng dụng web.

Để thêm WebView vào ứng dụng của bạn, bạn phải thêm phần tử <WebView> vào tệp bố cục xml của bạn. Cú pháp của nó như sau

Khóa học lập trình Andorid
Khóa học lập trình Andorid

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

Để sử dụng nó, bạn phải có một tham chiếu về khung nhìn này trong tệp Java. Để có được một tham chiếu, tạo một đối tượng của lớp WebView. Cú pháp của nó là

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

Để tải url web vào WebView, bạn cần gọi một phương thức loadUrl (Chuỗi url) của lớp WebView, chỉ định url cần thiết. Cú pháp của nó là:

browser.loadUrl("http://www.tutorialspoint.com");

Ngoài việc chỉ tải url, bạn có thể có nhiều quyền kiểm soát hơn đối với WebView của mình bằng cách sử dụng các phương thức được xác định trong lớp WebView. Chúng được liệt kê như sau

Không.Phương pháp & Mô tả
1canGoBack ()

Phương pháp này chỉ định WebView có mục lịch sử quay lại.
2canGoForward ()

Phương pháp này chỉ định WebView có mục lịch sử chuyển tiếp.
3xóa lịch sử()
Phương pháp này sẽ xóa lịch sử tiến và lùi của WebView.
4hủy hoại()

Phương pháp này phá hủy trạng thái bên trong của WebView.
5find ALLAsync (Tìm chuỗi)

Phương pháp này tìm tất cả các trường hợp của chuỗi và làm nổi bật chúng.
6getProTHER ()

Phương pháp này nhận được tiến trình của trang hiện tại.
7getTitle ()

Phương pháp này trả về tiêu đề của trang hiện tại.
số 8getUrl ()

Phương pháp này trả về url của trang hiện tại.
Nếu bạn nhấp vào bất kỳ liên kết nào trong trang web của WebView, trang đó sẽ không được tải bên trong WebView của bạn. Để làm được điều đó, bạn cần Học lập trình Android mở rộng lớp của mình khỏi WebViewClient và ghi đè phương thức của nó. Cú pháp của nó là
private class MyBrowser extends WebViewClient {
   @Override
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
      view.loadUrl(url);
      return true;
   }
}
Thí dụ

Dưới đây là một ví dụ minh họa việc sử dụng Bố cục WebView. Nó tạo ra một ứng dụng web cơ bản sẽ yêu cầu bạn chỉ định một url và sẽ tải trang web url này trong WebView.

Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế có internet đang chạy.

Các bướcSự miêu tả
1Bạn sẽ sử dụng studio Android để tạo một ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã WebView.
3Sửa đổi res / layout / Activity_main để thêm các thành phần XML tương ứng
4Sửa đổi AndroidManifest.xml để thêm các quyền cần thiết
5Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / MainActivity.java .
package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.os.Bundle;

import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity  {
   Button b1;
   EditText ed1;

   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;
      }
   }
}
Sau đây là nội dung được sửa đổi của xml res / layout / Activity_main.xml.
Trong đoạn mã sau abc chỉ ra logo của guidespoint.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView android:text="WebView" android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:hint="Enter Text"
      android:focusable="true"
      android:textColorHighlight="#ff7eff15"
      android:textColorHint="#ffff25e6"
      android:layout_marginTop="46dp"
      android:layout_below="@+id/imageView"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignRight="@+id/imageView"
      android:layout_alignEnd="@+id/imageView" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Enter"
      android:id="@+id/button"
      android:layout_alignTop="@+id/editText"
      android:layout_toRightOf="@+id/imageView"
      android:layout_toEndOf="@+id/imageView" />
      
   <WebView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/webView"
      android:layout_below="@+id/button"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignParentBottom="true" />
      
</RelativeLayout>
Sau đây là nội dung của res / value / string.xml .
<resources>
   <string name="app_name">My Application</string>
</resources>
Sau đây là nội dung của tệp 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>
Hãy thử chạy ứng dụng WebView của bạn. Để chạy ứng dụng từ studio Android, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Studio Android sẽ hiển thị như hình bên dưới

Học lập trình Android. Bây giờ chỉ cần chỉ định một url trên trường url và nhấn nút duyệt xuất hiện, để khởi chạy trang web. Nhưng trước đó hãy chắc chắn rằng bạn đã kết nối với internet. Sau khi nhấn nút, màn hình sau sẽ xuất hiện

Chú thích. Chỉ cần thay đổi url trong trường url, WebView của bạn sẽ mở trang web mong muốn của bạn.

Không có nhận xét nào:

Đăng nhận xét

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên ...