首页 > 解决方案 > android webview访问媒体文件问题

问题描述

大家好,我正在尝试制作一个应用程序,只需上传一个网页即可转换文件类型。但即使在 manifest.xml 上获得了所需的权限,我也无法通过 webview 访问我的文件。这是我的主要活动代码。无论我多么努力地尝试实施解决方案,我都无法做到。你能帮帮我吗?在此先感谢。

public class MainActivity extends AppCompatActivity {

public static boolean hasPermissions(Context context, String... permissions) {
if (context != null && permissions != null) {
    for (String permission : permissions) {
        if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
            return false;
        }
    }
}
return true;

}

String ShowOrHideWebViewInitialUse = "show";
private WebView webview ;
private ProgressBar spinner;
String myurl = "https://pdftoimage.com/tr/"; //buraya görüntülemek istenen url yazılmalı


@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
@Override
protected void onCreate(Bundle savedInstanceState) {
    int PERMISSION_ALL = 1;
    String[] PERMISSIONS = {
            android.Manifest.permission.CAMERA,
            android.Manifest.permission.RECORD_AUDIO,
            android.Manifest.permission.READ_EXTERNAL_STORAGE,
            android.Manifest.permission.WRITE_EXTERNAL_STORAGE
    };

    if (!hasPermissions(this, PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
    }
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    webview =(WebView)findViewById(R.id.webView);
    spinner = (ProgressBar)findViewById(R.id.progressBar1);
    WebSettings settings = webview.getSettings();
    webview.getSettings().setMediaPlaybackRequiresUserGesture(false);
    settings.setUserAgentString("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36");
    webview.setWebViewClient(new CustomWebViewClient());
    webview.getSettings().setBuiltInZoomControls(true);
    webview.getSettings().setSupportZoom(true);
    webview.getSettings().setAllowFileAccess(true);
    webview.getSettings().setUseWideViewPort(true);
    webview.getSettings().setLoadWithOverviewMode(true);
    webview.getSettings().setDomStorageEnabled(true);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setDomStorageEnabled(true);

    webview.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
    webview.loadUrl(myurl);
    webview.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onPermissionRequest(final PermissionRequest request) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                request.grant(request.getResources());
            }
        }
    });

}

标签: androidandroid-activitywebview

解决方案


推荐阅读