WxPictureUpload
功能描述
该模块实现了仿微信朋友圈发布动态、上传图片、图片浏览,图片删除等功能;该模块必须在APICloud环境下运行。
依赖的模块
UIAlbumBrowser打开照片选择器模块;
imageFilter图片压缩模块;
photoBrowser图片浏览模块;
api.getPicture打开相机内置组件;
vue.js插件作为模块渲染;
快速使用
建议把模块对应文件,放到app项目下html文件下面,然后在index通过api.openFrame 打开wxpictureupload文件;
api.openFrame({
name: 'wxpictureupload',
url: './html/wxpictureupload.html',
rect: {
marginLeft: 0,
marginTop: api.safeArea.top,
marginBottom: 0,
marginRight: 0
},
pageParam: '',
reload: true,
bounces: false,
bgColor: '#e5e5e5',
vScrollBarEnabled: false,
hScrollBarEnabled: false
})
在APICloud使用Vue建议使用下面格式
<!-- css: -->
<!-- //这个是为了在数据未加载出来,就显示dom的作用 -->
[v-cloak] {
display: none;
}
<!-- body -->
<section id="listimg" v-cloak>
</section>
<script>
apiready = function() {
//初始化vue
fnInVue();
}
var vm;
function fnInVue() {
vm = new Vue({
el: "#listimg",
data: {
listimg: [],
number: 0
},
mounted: function() {
this.$nextTick(function() {
fnInit();
});
},
methods: {
}
}
var UIAlbumBrowser, imageFilter;
function fnInit() {
// 引用多图上传模块
UIAlbumBrowser = api.require('UIAlbumBrowser');
// 引用压缩图片模块
imageFilter = api.require('imageFilter');
}
</script>
注意事项:
UIAlbumBrowser模块在ios里面所取到的图片是模糊的必须通过压缩图片,查找到未压缩的图片
if (api.systemType == "ios") { //ios图片还需要经过模糊图片查找到未压缩的图片
var imgPathsdata = [];
for (var i = 0; i < ret.list.length; i++) {
var data = {
"path": ret.list[i].path
};
imgPathsdata.push(data);
}
//闭包拿取到ios清晰图片
fnUIAlbumBrowsertransPath(imgPathsdata, function(cb) {
for (var i = 0; i < cb.length; i++) {
var data = {
"path": cb[i]
};
imgPaths.push(data);
}
});
} else {
//安卓可以直接使用图片
}
// 获取ios 未缩的图片
function fnUIAlbumBrowsertransPath(imgPath, callback) {
var arr = [];
for (var i = 0; i < imgPath.length; i++) {
(function(index) {
UIAlbumBrowser.transPath({
path: imgPath[index].path
}, function(ret, err) {
if (ret) {
arr.push(ret.path);
if (arr.length === imgPath.length) {
// 闭包结束,回调压缩后面图片数组
callback(arr);
}
} else {
toast(err.msg);
}
});
})(i);
}
}
具体使用情使用模块查看,里面都有详情的标注;