Anroid通过WebView打开见面发布App
现AI时代到来,很多基础功能都不用自己写,都由AI可以帮写代码。
好久没试用用Android原生开发一个APP,这个APP的功能很简单,只需要简单地调用网页即可
于是让AI帮我写这段代码:
AI的原文如下:
要在Android中通过WebView打开网页,你需要在你的Activity中设置WebView并加载指定的URL。以下是一个基本的实现示例:
• 在布局文件中添加WebView:
首先,在你的布局文件(例如`activity_main.xml`)中添加一个WebView组件:
```xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<WebView
android:id="@+id/myWebView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
```
• 在Activity中设置WebView:
在你的Activity文件(例如`MainActivity.java`)中,设置WebView并加载网页:
```java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = findViewById(R.id.myWebView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true); // 启用JavaScript支持
myWebView.setWebViewClient(new WebViewClient()); // 设置WebViewClient,防止网页在浏览器中打开
myWebView.loadUrl("https://www.example.com"); // 加载网页
}
@Override
public void onBackPressed() {
if (myWebView.canGoBack()) {
myWebView.goBack(); // 如果可以后退,则后退
} else {
super.onBackPressed(); // 否则,退出应用
}
}
}
```
• 启用JavaScript:通过`webSettings.setJavaScriptEnabled(true);`启用JavaScript支持,因为许多现代网页都需要JavaScript才能正常工作.
• 设置WebViewClient:通过`myWebView.setWebViewClient(new WebViewClient());`设置WebViewClient,这样网页就会在WebView中打开,而不是在外部浏览器中打开.
• 加载网页:通过`myWebView.loadUrl("https://www.example.com");`加载指定的网页.
• 处理返回键:重写`onBackPressed()`方法,使得当用户点击返回键时,WebView可以后退页面,而不是直接退出应用.
确保你已经在`AndroidManifest.xml`中添加了网络权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
这样,你就可以在Android应用中通过WebView打开网页了.
================
就这样,不用一分钟就将功能写了出来。
直接复制内容进去运行,发现是可行的。
后面又遇到打不开某些特定的网页,于是我将所有的权限都开放了,就能打开 了。
webSettings.setDefaultTextEncodingName("UTF-8");
webSettings.setUserAgentString("User-Agent:Android");
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setSavePassword(true);
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
webSettings.setUseWideViewPort(true);
完美地运行
当然我也将整个项目保存下来了,下载地址是:https://download.csdn.net/download/Highning0007/90238901