代码之家  ›  专栏  ›  技术社区  ›  Venki WAR

Android WebView网页文件上载选择器不工作

  •  0
  • Venki WAR  · 技术社区  · 6 年前

    在我的应用程序中 Webview 网页文件上传不起作用。但在移动Chrome浏览器中它起作用。我需要做什么才能使文件上传选择器工作

    这里是我的代码

    WebView web = findViewById(R.id.webview);
    WebSettings websetting = web.getSettings();
    websetting.setJavaScriptEnabled(true);
    
    web.loadUrl(web_url);
    

    在Chrome浏览器中,我单击“文件选择器”显示以下选项

    此处图像参考
    enter image description here

    如何在我的 webview
    谢谢你的帮助

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gaurav Bansal    6 年前

    使用这个,//we do open selector window for the url having“google”in the uri,you can change that:

    webView.setWebViewClient(new WebViewClient() {      
                    ProgressDialog progressDialog;
    
                    //If you will not use this method url links are open in new brower not in webview
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {              
    
                        // Check if Url contains ExternalLinks string in url 
                        // then open url in new browser
                        // else all webview links will open in webview browser
                        if(url.contains("google")){ 
    
                            // Could be cleverer and use a regex
                            //Open links in new browser
                            view.getContext().startActivity(
                                    new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
    
                            // Here we can open new activity
    
                            return true;
    
                        } else {
    
                            // Stay within this webview and load url
                            view.loadUrl(url); 
                            return true;
                        }
    
                    }
    
    
    
                    //Show loader on url load
                    public void onLoadResource (WebView view, String url) {
    
                        // if url contains string androidexample
                        // Then show progress  Dialog
                        if (progressDialog == null && url.contains("androidexample") 
                                ) {
    
                            // in standard case YourActivity.this
                            progressDialog = new ProgressDialog(ShowWebView.this);
                            progressDialog.setMessage("Loading...");
                            progressDialog.show();
                        }
                    }
    
                    // Called when all page resources loaded
                    public void onPageFinished(WebView view, String url) {
    
                        try{
                            // Close progressDialog
                            if (progressDialog.isShowing()) {
                                progressDialog.dismiss();
                                progressDialog = null;
                            }
                        }catch(Exception exception){
                            exception.printStackTrace();
                        }
                    }
    
                });
    

    相应地更改动作名称E.D.动作共享