2012-11-29 73 views
2

我正在使用https://build.phonegap.com将一个HTML应用程序转换为.apk文件,并且从我的文件选择器中一切正常。PhoneGap Conversion - HTML to .apk

<input name="file" type="file" id="file"> 

我希望能够只选择图像(它不事关如果可以选择更多的 - 但它的,我寻找的图像),从相机和文件系统..

在web版本http://carbonyzed.co.uk/websites/assent/1/photos.html这对我的手机非常有用,但是当转换为.apk时,此功能会丢失,而且我似乎无法在此处找到任何内容,或者在线查找与此问题有关的任何内容。

回答

2

至少对我来说,输入文件在Phonegap中不起作用。

您需要使用Phonegap API来获取图片并选择来源,例如photolibrary,camera或savedphotoalbum。

查看更多信息关于camera.getPicture:http://docs.phonegap.com/en/2.1.0/cordova_camera_camera.md.html#camera.getPicture 约cameraOptions方法Camera.PictureSourceType参数:http://docs.phonegap.com/en/2.1.0/cordova_camera_camera.md.html#cameraOptions

+1

正确,输入文件类型不适用于Android。它不适用于大多数移动浏览器。如果你只是想获得图片,那么你应该使用camera.getPicture()和PHOTOLIBRARY选项。 –

0

结束了使用儿童浏览器系统,像这样

在头

<script src="childbrowser.js"></script> 

在体内

<button class="button-big"  onClick="window.plugins.childBrowser.showWebPage('URL_TO_GO_HERE', 
            { showAddress: false });" style="width: 100%;">UPLOAD  PHOTOS</button> 

具有标准fileuploader像

<input name="file" type="file" id="file"> 

然后它让我从根存储选择,工作在PhoneGap的2.2起在iOS和Android操作系统

为了抓住我的头

使用该图像
<script type="text/javascript" charset="utf-8" src="json2.js"></script> 
<script type="text/javascript" charset="utf-8"> 

// Called when capture operation is finished 
// 
function captureSuccess(mediaFiles) { 
    var i, len; 
    for (i = 0, len = mediaFiles.length; i < len; i += 1) { 
     uploadFile(mediaFiles[i]); 
    }  
} 

// Called if something bad happens. 
// 
function captureError(error) { 
    var msg = 'An error occurred during capture: ' + error.code; 
    navigator.notification.alert(msg, null, 'Uh oh!'); 
} 

// A button will call this function 
// 
function captureImage() { 
    // Launch device camera application, 
    // allowing user to capture up to 2 images 
    navigator.device.capture.captureImage(captureSuccess, captureError, {limit: 2}); 
} 

// Upload files to server 
function uploadFile(mediaFile) { 
    var ft = new FileTransfer(), 
     path = mediaFile.fullPath, 
     name = mediaFile.name; 

    ft.upload(path, 
     "http://my.domain.com/upload.php", 
     function(result) { 
      console.log('Upload success: ' + result.responseCode); 
      console.log(result.bytesSent + ' bytes sent'); 
     }, 
     function(error) { 
      console.log('Error uploading file ' + path + ': ' + error.code); 
     }, 
     { fileName: name }); 
} 

</script> 

,这在体内

<input type="button" class="button-big" style="width: 100%;" onclick="captureImage();" value="TAKE PHOTO"> 

复制以及过去和它的工作原理是梦想,

检查出来这个图像

enter image description here

任何问题,只是电子邮件评论中,

或发邮件给我...支持@ carbonyzed。 co.uk