WxPictureUpload

功能描述

  1. 该模块实现了仿微信朋友圈发布动态、上传图片、图片浏览,图片删除等功能;该模块必须在APICloud环境下运行。

依赖的模块

  1. UIAlbumBrowser打开照片选择器模块;
  2. imageFilter图片压缩模块;
  3. photoBrowser图片浏览模块;
  4. api.getPicture打开相机内置组件;
  5. vue.js插件作为模块渲染;

快速使用

建议把模块对应文件,放到app项目下html文件下面,然后在index通过api.openFrame 打开wxpictureupload文件;

  1. api.openFrame({
  2. name: 'wxpictureupload',
  3. url: './html/wxpictureupload.html',
  4. rect: {
  5. marginLeft: 0,
  6. marginTop: api.safeArea.top,
  7. marginBottom: 0,
  8. marginRight: 0
  9. },
  10. pageParam: '',
  11. reload: true,
  12. bounces: false,
  13. bgColor: '#e5e5e5',
  14. vScrollBarEnabled: false,
  15. hScrollBarEnabled: false
  16. })

在APICloud使用Vue建议使用下面格式

  1. <!-- css: -->
  2. <!-- //这个是为了在数据未加载出来,就显示dom的作用 -->
  3. [v-cloak] {
  4. display: none;
  5. }
  6. <!-- body -->
  7. <section id="listimg" v-cloak>
  8. </section>
  9. <script>
  10. apiready = function() {
  11. //初始化vue
  12. fnInVue();
  13. }
  14. var vm;
  15. function fnInVue() {
  16. vm = new Vue({
  17. el: "#listimg",
  18. data: {
  19. listimg: [],
  20. number: 0
  21. },
  22. mounted: function() {
  23. this.$nextTick(function() {
  24. fnInit();
  25. });
  26. },
  27. methods: {
  28. }
  29. }
  30. var UIAlbumBrowser, imageFilter;
  31. function fnInit() {
  32. // 引用多图上传模块
  33. UIAlbumBrowser = api.require('UIAlbumBrowser');
  34. // 引用压缩图片模块
  35. imageFilter = api.require('imageFilter');
  36. }
  37. </script>

注意事项:

UIAlbumBrowser模块在ios里面所取到的图片是模糊的必须通过压缩图片,查找到未压缩的图片

  1. if (api.systemType == "ios") { //ios图片还需要经过模糊图片查找到未压缩的图片
  2. var imgPathsdata = [];
  3. for (var i = 0; i < ret.list.length; i++) {
  4. var data = {
  5. "path": ret.list[i].path
  6. };
  7. imgPathsdata.push(data);
  8. }
  9. //闭包拿取到ios清晰图片
  10. fnUIAlbumBrowsertransPath(imgPathsdata, function(cb) {
  11. for (var i = 0; i < cb.length; i++) {
  12. var data = {
  13. "path": cb[i]
  14. };
  15. imgPaths.push(data);
  16. }
  17. });
  18. } else {
  19. //安卓可以直接使用图片
  20. }
  21. // 获取ios 未缩的图片
  22. function fnUIAlbumBrowsertransPath(imgPath, callback) {
  23. var arr = [];
  24. for (var i = 0; i < imgPath.length; i++) {
  25. (function(index) {
  26. UIAlbumBrowser.transPath({
  27. path: imgPath[index].path
  28. }, function(ret, err) {
  29. if (ret) {
  30. arr.push(ret.path);
  31. if (arr.length === imgPath.length) {
  32. // 闭包结束,回调压缩后面图片数组
  33. callback(arr);
  34. }
  35. } else {
  36. toast(err.msg);
  37. }
  38. });
  39. })(i);
  40. }
  41. }

具体使用情使用模块查看,里面都有详情的标注;