Java 如何在android中允许照片库权限访问WebView?

Java 如何在android中允许照片库权限访问WebView?,java,android,webview,Java,Android,Webview,我正在使用URL加载WebView。我的URL包含一个按钮,用于从照片库或使用设备照相机从手机拍摄照片。我还设置了访问照片库的权限。但该按钮不会打开照片库 这是我的密码: webJobForm.getSettings().setLoadsImagesAutomatically(true); webJobForm.getSettings().setPluginState(WebSettings.PluginState.ON); webJobForm.setScrollBarStyle(View.S

我正在使用URL加载WebView。我的URL包含一个按钮,用于从照片库或使用设备照相机从手机拍摄照片。我还设置了访问照片库的权限。但该按钮不会打开照片库

这是我的密码:

webJobForm.getSettings().setLoadsImagesAutomatically(true);
webJobForm.getSettings().setPluginState(WebSettings.PluginState.ON);
webJobForm.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webJobForm.getSettings().setSupportZoom(true);
webJobForm.getSettings().setBuiltInZoomControls(true);
webJobForm.getSettings().setDisplayZoomControls(true);
webJobForm.getSettings().setLoadWithOverviewMode(true);
webJobForm.setVerticalScrollBarEnabled(true);
webJobForm.setHorizontalScrollBarEnabled(true);
webJobForm.getSettings().setUseWideViewPort(true);
webJobForm.getSettings().setAllowFileAccess(true);
webJobForm.getSettings().setAllowUniversalAccessFromFileURLs(true);
webJobForm.getSettings().setAllowContentAccess(true);
webJobForm.getSettings().setAllowFileAccessFromFileURLs(true);
webJobForm.getSettings().setMediaPlaybackRequiresUserGesture(true);
webJobForm.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webJobForm.getSettings().setJavaScriptEnabled(true);
webJobForm.setWebChromeClient(new WebChromeClient());
webJobForm.postUrl(bundle.getString("FormUrl"),JobID.getBytes());

你可以这样做

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.equals("alert://alert")) {
            Toast.makeText(this, "alert", Toast.LENGTH_LONG).show();
        } else if (url.equals("choose://image")) {
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("image/*");

            startActivityForResult(intent, FILECHOOSER_RESULTCODE);
        }
        return true;
    }
});      
<!doctype html>
<html>
    <head>
    <meta charset="utf-8">
    <title>Test Android Popup</title>
    </head>
    <body>
        <label>Test Alert 1:</label>
        <form action="alert://alert">
             <input type="submit" value="Click me!">
        </form>
        <br>
        <label>Test Browse file</label>
        <form action="image://choose">
            <input type="submit" value="Choose File">
        </form>
    </body>
</html>
你的html应该是这样的

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.equals("alert://alert")) {
            Toast.makeText(this, "alert", Toast.LENGTH_LONG).show();
        } else if (url.equals("choose://image")) {
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("image/*");

            startActivityForResult(intent, FILECHOOSER_RESULTCODE);
        }
        return true;
    }
});      
<!doctype html>
<html>
    <head>
    <meta charset="utf-8">
    <title>Test Android Popup</title>
    </head>
    <body>
        <label>Test Alert 1:</label>
        <form action="alert://alert">
             <input type="submit" value="Click me!">
        </form>
        <br>
        <label>Test Browse file</label>
        <form action="image://choose">
            <input type="submit" value="Choose File">
        </form>
    </body>
</html>

测试Android弹出窗口
测试警报1:

测试浏览文件
您尝试过这个@remeemssyde吗。感谢您的快速回复:)webview中没有固定的html内容,因为在我的示例中,webview是从url加载的。请尝试此操作。测试和working@AjithMadhu非常感谢您,这个解决方案对我很有效。:)