-1

ファイルアップロードボタンのある登録ページがあります。これはC#のaspxページです。

ブラウザで実行すると正常に動作します。AndroidアプリのWebビューで実行すると、Androidフォンのファイルメニューが起動しません。私のAndroid携帯電話のブラウザでページを実行すると、私の携帯電話のファイルメニューがうまく表示されます。

Webビューで機能させるにはどうすればよいですか。

私の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 に答える