-1

我有一个注册页面,上面有一个文件上传按钮。这是 C# 中的 aspx 页面。

当我在浏览器中运行它时,它工作正常。当我在 android 应用程序的 web 视图中运行它时,它不会在你的 android 手机中启动文件菜单。当我在我的 android 手机上的浏览器中运行该页面时,它会在我的手机上启动文件菜单。

我如何让它在网络视图中工作。

我的asp标签。

<asp:FileUpload ID="FileUpload1" runat="server" Height="30px" Width="217px" />

我的安卓网页视图

case R.id.register:            
mWebView2 = (WebView) findViewById(R.id.webview);    
mWebView2.getSettings().setJavaScriptEnabled(true);    
mWebView2.loadUrl("www.mysite.com/AndroidAddMember.aspx");
mWebView2.setWebViewClient(new HelloWebViewClient());           
return true;  

我试图实现您提供的代码。我现在在 FILECHOOSER_RESULTCODE 上遇到错误。错误是 FILECHOOSER_RESULTCODE 无法解析为变量。

case R.id.register:            
        //mWebView2 = (WebView) findViewById(R.id.webview);    
        //mWebView2.getSettings().setJavaScriptEnabled(true);    
        //mWebView2.loadUrl("http://www.bangmeornot.com/AndroidAddMember.aspx");
        //mWebView2.setWebViewClient(new HelloWebViewClient());   
        mWebView2.setWebChromeClient(new WebChromeClient()   
        {   
            //The undocumented magic method override   
            //Eclipse will swear at you if you try to put @Override here   
            public void openFileChooser(ValueCallback<URL> uploadMsg) {   

            ValueCallback<URL> mUploadMessage = uploadMsg;   
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);   
            i.addCategory(Intent.CATEGORY_OPENABLE);   
            i.setType("image/*");   
            BangMeorNot.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);        
            }   
        });   

        return true;    
4

1 回答 1

1

显然,股票浏览器使用未记录的方法来完成文件上传。要在您的应用中启用此功能,您必须执行以下操作:

mWebView2.setWebChromeClient(new WebChromeClient()  
{  
    //The undocumented magic method override  
    //Eclipse will swear at you if you try to put @Override here  
    public void openFileChooser(ValueCallback<Uri> uploadMsg) {  

    mUploadMessage = uploadMsg;  
    Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
    i.addCategory(Intent.CATEGORY_OPENABLE);  
    i.setType("image/*");  
    MyAwesomeActivity.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);       
    }  
});  

注意:此函数的确切参数在不同版本的 Android 中有所变化。对于适用于所有 Android 版本的解决方案,请查看此问题,或尝试使用此答案中列出的参数。

于 2012-09-27T01:08:40.710 回答