Android Studio:使用Webview将HTML5 Webapp转为APK时,出现错误:您的浏览器不允许读取本地文件。
创始人
2024-08-18 21:00:12
0

出现错误“您的浏览器不允许读取本地文件”是因为WebView默认不允许读取本地文件。您可以通过以下代码示例解决这个问题:

  1. 在AndroidManifest.xml文件中添加文件读取权限:

  1. 在MainActivity.java文件中添加以下代码来设置WebView:
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

public class MainActivity extends AppCompatActivity {
    private static final int PERMISSION_REQUEST_CODE = 1;
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webview);

        // 检查读取文件权限
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
            } else {
                loadWebView();
            }
        } else {
            loadWebView();
        }
    }

    private void loadWebView() {
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAllowFileAccess(true);

        // 加载本地HTML文件
        webView.loadUrl("file:///android_asset/index.html");
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                loadWebView();
            } else {
                Toast.makeText(MainActivity.this, "权限被拒绝!", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
  1. 确保您的项目中有一个名为"index.html"的HTML文件,并将其放在assets文件夹中。

通过以上代码示例,您可以在Android Studio中使用WebView将HTML5 Webapp转为APK,并解决“您的浏览器不允许读取本地文件”的错误。

相关内容

热门资讯

黑科技模拟器(智星德州菠萝)a... 黑科技模拟器(智星德州菠萝)aaPOKER好像是真的有挂!太嚣张了竟然真的是有挂(2022已更新)(...
黑科技教程(aapoker设置... 1、黑科技教程(aapoker设置)wepoker果然是有挂!太夸张了确实是有挂(2024已更新)(...
黑科技科技(Wepoke程序)... 1、黑科技科技(Wepoke程序)fishpoker本来存在有挂!太离谱了本来真的有挂(2022已更...
黑科技新版(Wepoke辅助器... 黑科技新版(Wepoke辅助器)线上wpk真是是有挂!太离谱了先前真的是有挂(2023已更新)(哔哩...
黑科技总结(wpk苹果版)Aa... 黑科技总结(wpk苹果版)Aapoker本然真的有挂!太坑了起初真的有挂(2026已更新)(哔哩哔哩...
黑科技软件(wpk数据)推扑克... 《推扑克软件透明挂》是一款多人竞技的推扑克辅助透视游戏,你将微扑克对手来到同一个战场,为至高无上的荣...
黑科技有挂(轰趴大菠萝十三水)... 黑科技有挂(轰趴大菠萝十三水)AApOKER总是是有挂!太离谱了先前存在有挂(2025已更新)(哔哩...
黑科技安卓版(pokermas... 1、黑科技安卓版(pokermastersteam外挂)微扑克好像真的有挂!太无语了往昔有挂(202...
黑科技免费(微扑克系统)德扑之... 黑科技免费(微扑克系统)德扑之星固有真的有挂!太坑了素来是真的有挂(2025已更新)(哔哩哔哩);玩...
黑科技软件(wepoke线上)... 黑科技软件(wepoke线上)微扑克游戏切实是真的有挂!太坑了最初有挂(2023已更新)(哔哩哔哩)...