我在jquery移动1.2.0中使用默认的File
控件。它在浏览器中工作良好。但它在设备中不起作用。我试用过三星Galaxy Tab 2。
控件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。)
好吧,Gajotres已经回答了我的问题,但由于它不起作用,他删除了那个答案。但他在回答中提供了一个链接,帮助我解决了我的问题。我回答我的问题是希望它能帮助别人在未来。
在该教程中,最后一个注释包含一个工作示例。该示例说明您需要为两个<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;
}
}
希望它对将来的人有所帮助。