原文: https://javatutorial.net/android-web-view-layout-example

在先前的教程中,我们学习了 Android 中的线性相对布局,本教程以示例说明了 Web 视图。

您要在 Android 应用程序中打开网页吗? Android 提供了一种称为 Web 视图,可帮助我们在应用程序中打开网页。

Web 视图

Web 视图用于显示活动中的在线内容。 Web 视图类是 Android 中视图类的扩展。 它不像网络浏览器,因此不提供导航控件和 URL。 Web 工具包呈现引擎显示网页,并允许我们向前和向后导航。 如果要在应用程序中显示一些网页信息,则使用 Web 视图非常普遍。 或者,如果您想提供需要更新的信息(例如用户指南或协议),则可以用作另一种用途。

如果要在应用程序中访问互联网,则必须向清单文件添加INTERNET权限,例如

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

Web 查看方法

以下是 Android 中 Web 视图的方法。

  • addJavascriptInterface(Object object, String name),用于在 Web 视图中注入 JavaScript 代码。
  • canGoBack(),用于转到上一个历史记录项目。
  • canGoBackOrForward(int steps),用于按给定步骤前进或后退。
  • canGoForward(),用于转到下一个历史记录项目。
  • canZoonIn(),用于放大。
  • canZoomOut(),用于缩小。
  • clearHistory(),用于清除 Web 视图的历史记录。
  • clearView(),用于重置 Web 视图和释放资源。
  • destroy(),用于破坏 Web 视图的内部状态。
  • findFocus(),在以当前具有焦点的此视图为根的层次结构中查找视图。
  • freeMemory(),用于释放内存,现在不建议使用此方法。
  • getSettings(),获取 Web 视图的设置。
  • getTitle(),以字符串形式获取当前页面的标题。
  • getURL(),以字符串形式获取当前页面的 URL。
  • goBack(),返回 Web 视图的历史记录。
  • capturePicture(),用于拍摄 Web 视图的位图快照。

Android 中的 Web 视图示例

这是一个示例,显示了如何通过在活动中使用 Web 视图在应用程序中显示javatutorial.net网站。 首先,您需要创建一个新活动。 打开您的activity_main.xml并粘贴此代码。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout android:layout_width="368dp"
  3. android:layout_height="495dp"
  4. tools:layout_editor_absoluteX="8dp"
  5. tools:layout_editor_absoluteY="8dp"
  6. xmlns:tools="http://schemas.android.com/tools"
  7. xmlns:android="http://schemas.android.com/apk/res/android">
  8. <TextView
  9. android:id="@+id/textView"
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:layout_alignParentTop="true"
  13. android:layout_centerHorizontal="true"
  14. android:layout_marginTop="53dp"
  15. android:text="Welcome to JavaTutorial.net"
  16. android:textColor="@android:color/black"
  17. android:textSize="24sp" />
  18. <Button
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_below="@+id/textView"
  22. android:layout_centerHorizontal="true"
  23. android:layout_marginTop="44dp"
  24. android:text="Click Here"
  25. android:id="@+id/button" />
  26. <WebView
  27. android:layout_width="match_parent"
  28. android:layout_height="match_parent"
  29. android:layout_below="@+id/button"
  30. android:layout_marginTop="86dp"
  31. android:id="@+id/webView"/>
  32. </RelativeLayout>

现在打开mainActivity.java并粘贴此代码

  1. package com.example.admin.webview;
  2. import android.support.v7.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.webkit.WebView;
  6. import android.webkit.WebViewClient;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. public class MainActivity extends AppCompatActivity {
  10. Button b1;
  11. private WebView wv1;
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. b1=(Button)findViewById(R.id.button);
  17. wv1=(WebView)findViewById(R.id.webView);
  18. wv1.setWebViewClient(new MyBrowser());
  19. b1.setOnClickListener(new View.OnClickListener() {
  20. @Override
  21. public void onClick(View v) {
  22. String url = "https://www.javatutorial.net/";
  23. wv1.getSettings().setLoadsImagesAutomatically(true);
  24. wv1.getSettings().setJavaScriptEnabled(true);
  25. wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
  26. wv1.loadUrl(url);
  27. }
  28. });
  29. }
  30. private class MyBrowser extends WebViewClient {
  31. @Override
  32. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  33. view.loadUrl(url);
  34. return true;
  35. }
  36. }
  37. }

您的清单文件应该是这样的

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.admin.webview">
  4. <uses-permission android:name="android.permission.INTERNET" />
  5. <application
  6. android:allowBackup="true"
  7. android:icon="@mipmap/ic_launcher"
  8. android:label="@string/app_name"
  9. android:roundIcon="@mipmap/ic_launcher_round"
  10. android:supportsRtl="true"
  11. android:theme="@style/AppTheme">
  12. <activity android:name=".MainActivity">
  13. <intent-filter>
  14. <action android:name="android.intent.action.MAIN" />
  15. <category android:name="android.intent.category.LAUNCHER" />
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. </manifest>

这是此应用程序的输出

Android Web 视图示例 - 图1

网页视图

Android Web 视图示例 - 图2

Web 视图示例

您可以通过单击链接下载此代码。