📅  最后修改于: 2023-12-03 14:52:12.129000             🧑  作者: Mango
WebView 是 Android 应用程序中的一个重要控件,它可以将一个网页呈现在应用程序中,提供了一种无缝的浏览体验。在本教程中,将介绍如何使用 WebView 控制器构建一个简单的新闻应用程序,并展示如何打开本地 HTML 文件、远程网页以及在 WebView 中执行 JavaScript。
在 Android Studio 中创建一个新项目,选择 Empty Activity 模板并填写项目的名称。
在布局文件中添加 WebView 控制器:
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
在 Activity 中获取 WebView 控制器的引用,并加载 URL:
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.web_view);
webView.loadUrl("https://www.example.com");
}
}
可以通过 WebViewClient 类自定义 WebView 控制器,以便在 WebView 中加载 URL 时具有更多的控制权。例如,可以使用自定义 WebViewClient 拦截所有点击链接的动作:
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
}
...
webView = findViewById(R.id.web_view);
webView.setWebViewClient(new CustomWebViewClient());
webView.loadUrl("https://www.example.com");
可以使用 file:///android_asset/
关键字加载应用程序内部的本地 HTML 文件:
webView.loadUrl("file:///android_asset/sample.html");
可以使用 WebView 的 evaluateJavascript
方法在 WebView 中执行 JavaScript 代码:
webView.evaluateJavascript(
"document.getElementById('title').innerHTML",
new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.d("WebView", "Title: " + value);
}
}
);
本教程介绍了如何在 Android Studio 中使用 WebView 控制器构建新闻应用程序,包括如何加载远程网页或本地 HTML 文件以及在 WebView 中执行 JavaScript。通过对 WebView 控制器的自定义,可以为 WebView 提供更多的控制能力,从而提高用户体验。