编写一个安卓应用,要求:主界面加载一个存在SD卡上的html网页,并且该网页可以加载js代码,对应java代码全写在MainActivity.java文件内,对应权限也写好
时间: 2023-06-19 09:04:04 浏览: 60
以下是一个简单的实现代码:
```java
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.io.File;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_PERMISSION_CODE = 1;
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = findViewById(R.id.web_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_PERMISSION_CODE);
} else {
loadWebView();
}
} else {
loadWebView();
}
}
private void loadWebView() {
File file = new File(Environment.getExternalStorageDirectory(), "index.html");
mWebView.loadUrl("file://" + file.getAbsolutePath());
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_PERMISSION_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
loadWebView();
}
}
}
}
```
在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
在 activity_main.xml 文件中添加 WebView:
```xml
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
注意:如果您的 Android 系统版本低于 6.0,或者您的应用程序没有请求 READ_EXTERNAL_STORAGE 权限,则不需要进行权限检查。