您的位置:首页 > 其它

ionic 拍照、相册并上传至又拍云

2015-07-03 17:51 316 查看
简单的项目开始:

ionic start camera-upload blank

添加平台

ionic platform add ios # 需要mac环境
ionic platform add android
添加必要的插件
MacBook:camera-upload jiang$ cat RAEDME.md
# 摄像头插件
ionic plugin add org.apache.cordova.camera

# 文件上传、下载插件(自动安装File插件)
ionic plugin add org.apache.cordova.file-transfer

# 相册
ionic plugin add https://github.com/wymsee/cordova-imagePicker.git[/code] 
摄像头插件用法比较简单:

navigator.camera.getPicture(function(result) {
   q.resolve(result);
}, function(err) {
   q.reject(err);
}, options);
相册也是如此:
$cordovaImagePicker.getPictures(options).then(function(results) {
   var uri = results[0],
       name = uri;
   if (name.indexOf('/')) {
       var i = name.lastIndexOf('/');
       name = name.substring(i + 1);
   }

}, function(error) {
    alert(error);
});
文件上传:
var ft = new FileTransfer();
ft.upload(fileURL, '服务器地址', function(data) {
    // 响应数据
    var resp = JSON.parse(data.response);
}, function(error) {
    $ionicLoading.hide();
}, options);

由于存储采用Upyun,所以使用Upyun的Form-APi就可以直接上传至又拍云服务器。唯一需要先从某个服务器上获得又拍云的文件认证信息。这里采用jsonp实现:

/**
 * Upyun认证数据
 */
.factory('Upyun', function($http) {
    return {
        token: function(name, size) {
            return $http.jsonp("http://transfer.impress.pw/upyun?callback=JSON_CALLBACK", {
                cache: false
            });
        }
    }
})

最后打包成APP就可以直接运行。(注意:不要滥用文中提供的Upyun上传服务,否则我会关闭。)

项目地址:http://git.oschina.net/jiangdx/ionic-apps/tree/master/camera-upload

根据READMD.md来安装插件。

附上app截图:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: