Android、WebViewの画像アップロードに関しまして

19 views
Skip to first unread message

星祐介

unread,
Nov 5, 2015, 8:06:03 PM11/5/15
to Android Developers Japan
初めての質問になります。

よろしくお願いいたします。

現在、Androidアプリでwebviewでアプリを公開しておりますが

htmlの

<input type="file" name="hoge" />

がandroidバージョン4.4.2のみ反応しません。
ボタンを押しても何も反応しない状態になります。
それ以外のバージョンは画像ライブラリが立ち上がる状態です。

アプリのソースは下記になっています。


ここにコードをweb.setWebChromeClient(new WebChromeClient() {                                                                                                                                                                                                                                                                                                                 
               // /Android 4.1以上                                                                                                                                                                                                                                                                                                                                        
               public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {                                                                                                                                                                                                                                                             
                   Log.d("ms","アンドロイド画像アップスタート");                                                                                                                                                                                                                                                                                                          
                   Log.d("ms","uploadMsg : "+uploadMsg);                                                                                                                                                                                                                                                                                                                  
                   mUploadMessage = uploadMsg;                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                          
                   if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT){                                                                                                                                                                                                                                                                                               
                       Log.d("ms","Android 4.4未満");                                                                                                                                                                                                                                                                                                                     
                       Intent i = new Intent(Intent.ACTION_PICK,                                                                                                                                                                                                                                                                                                          
                           android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);                                                                                                                                                                                                                                                                                
                       i.setAction(Intent.ACTION_GET_CONTENT);                                                                                                                                                                                                                                                                                                            
                       i.addCategory(Intent.CATEGORY_OPENABLE);                                                                                                                                                                                                                                                                                                           
                       i.setType("image/*");                                                                                                                                                                                                                                                                                                                              
                       startActivityForResult(i, FILECHOOSER_RESULTCODE);                                                                                                                                                                                                                                                                                                 
                   } else {                                                                                                                                                                                                                                                                                                                                               
                       Log.d("ms","Android 4.4以上");                                                                                                                                                                                                                                                                                                                     
                       Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT,                                                                                                                                                                                                                                                                                                 
                           android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);                                                                                                                                                                                                                                                                                
                       i.addCategory(Intent.CATEGORY_OPENABLE);                                                                                                                                                                                                                                                                                                           
                       i.setType("image/*");                                                                                                                                                                                                                                                                                                                              
                       startActivityForResult(i, FILECHOOSER_RESULTCODE);                                                                                                                                                                                                                                                                                                 
                   }                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                          
               }                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                        
               // Android 3.0以上                                                                                                                                                                                                                                                                                                                                         
               public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {                                                                                                                                                                                                                                                                             
                   Log.d("ms","Android 3.0以上");                                                                                                                                                                                                                                                                                                                         
                   //startActivityForResult(Intent.createChooser(i, "画像選択"), FILECHOOSER_RESULTCODE);                                                                                                                                                                                                                                                                 
                  openFileChooser( uploadMsg, acceptType ,"");                                                                                                                                                                                                                                                                                                            
               }                                                                                                                                                                                                                                                                                                                                                          
               // Android 3.0未満                                                                                                                                                                                                                                                                                                                                         
               public void openFileChooser(ValueCallback<Uri> uploadMsg) {                                                                                                                                                                                                                                                                                                
                   Log.d("ms","Android 3.0未満");                                                                                                                                                                                                                                                                                                                         
                   openFileChooser(uploadMsg, "", "");                                                                                                                                                                                                                                                                                                                    
               }                                                                                                                                                                                                                                                                                                                                                          
           }); 

入力...

inputを押した際のログには下記のようになります。

I/chromium﹕ [INFO:aw_web_contents_delegate.cc(218)] File Chooser result: mode = 0, file paths 


上記のログは4.4.2のxpediaでは出ますがGalaxyでは出ません。
ただ、動作としては両方、無反応です。

SDKのバージョンは21です。

ご教授頂ければ幸いです。

よろしくお願いいたします。





Reply all
Reply to author
Forward
0 new messages