2013-04-16 25 views
0

我在jquery mobile 1.2.0中使用默認的File控件。它在瀏覽器中工作正常。但它不在設備中工作。我試圖與三星Galaxy Tab 2jquery mobile文件控制器在設備中不工作

控制HTML如下:

<div id="divattachImg" data-role="fieldcontain"> 
    <label for="attachImg">Attach Image (Optional):</label> 
    <input type="file" name="attachImg" id="attachImg" value="" maxlength="45"> 
</div> 

當我點擊的設備控制,它不會做任何事情。它像,點擊從未發生過。 我在這裏做錯了什麼或與jqm這個問題?如果是這樣,你能提出任何解決方法嗎?

任何幫助,將不勝感激。

P.S:我在android webview中使用它。 (不是phonegap。)

+0

Android版本?瀏覽器或Phonegap應用程序? – Gajotres

+0

Android版本@Gajotres –

+0

Android版本在您的Galaxy Tab上? – Gajotres

回答

1

好吧,Gajotres回答了我的問題,但是因爲它沒有工作,他刪除了這個答案。 但他在回答中提供了一個link,這幫助我解決了我的問題。我正在回答我的問題,希望它能在將來幫助別人。

在該教程中,last comment包含working exampleThat example指出您需要使用具有不同參數的方法來處理< 3.x和> 3.x。我用它,它的工作。

所以最後的解決辦法是這樣的:

private ValueCallback<Uri> mUploadMessage; 
private final static int FILECHOOSER_RESULTCODE = 1; 

public class MyWebChromeClient extends WebChromeClient { 

     public void openFileChooser(ValueCallback<Uri> uploadMsg) { 

      mUploadMessage = uploadMsg; 
      Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
      i.addCategory(Intent.CATEGORY_OPENABLE); 
      i.setType("image/*"); 
      System.out.println("starting act for result"); 
      MainActivity.this.startActivityForResult(
        Intent.createChooser(i, "Image Browser"), 
        FILECHOOSER_RESULTCODE); 
     } 

     public void openFileChooser(ValueCallback<Uri> uploadMsg, 
       String acceptType) { 
      mUploadMessage = uploadMsg; 
      Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
      i.addCategory(Intent.CATEGORY_OPENABLE); 
      i.setType("image/*"); 

      MainActivity.this.startActivityForResult(
        Intent.createChooser(i, "Choose type of attachment"), 
        FILECHOOSER_RESULTCODE); 
     } 
    } 

@Override 
    protected void onActivityResult(int requestCode, int resultCode, 
      Intent intent) { 
     // TODO Auto-generated method stub 
     if (requestCode == FILECHOOSER_RESULTCODE) { 
      if (null == mUploadMessage) 
       return; 
      Uri result = intent == null || resultCode != RESULT_OK ? null 
        : intent.getData(); 
      mUploadMessage.onReceiveValue(result); 
      mUploadMessage = null; 
     } 
    } 

希望它可以幫助別人的未來。

相關問題