gallery.html 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  6. <meta name="HandheldFriendly" content="true"/>
  7. <meta name="MobileOptimized" content="320"/>
  8. <title>Hello H5+</title>
  9. <script type="text/javascript" src="../js/common.js"></script>
  10. <script type="text/javascript">
  11. function plusReady(){
  12. // 用户侧滑返回时关闭显示的图片
  13. plus.webview.currentWebview().addEventListener('popGesture', function(e){
  14. if(e.type=='start'){
  15. closeImg();
  16. }
  17. }, false );
  18. }
  19. document.addEventListener('plusready',plusReady,false);
  20. function getImage(){
  21. var cmr = plus.camera.getCamera();
  22. cmr.captureImage(function(path){
  23. outSet('保存照片到系统相册:');
  24. plus.gallery.save(path, function(){
  25. outLine('保存成功');
  26. }, function(e){
  27. outSet('保存失败: '+JSON.stringify(e));
  28. });
  29. }, function(e){
  30. outSet('取消拍照');
  31. }, {filename:'_doc/gallery/',index:1});
  32. }
  33. function galleryImg(){
  34. // 从相册中选择图片
  35. outSet('从相册中选择图片:');
  36. plus.gallery.pick(function(path){
  37. outLine(path);
  38. //showImg( path );
  39. //createItem(path);
  40. }, function(e){
  41. outSet('取消选择图片');
  42. }, {filter:'image'});
  43. }
  44. function galleryImgs(){
  45. // 从相册中选择图片
  46. outSet('从相册中选择多张图片:');
  47. plus.gallery.pick(function(e){
  48. for(var i in e.files){
  49. outLine(e.files[i]);
  50. }
  51. }, function(e){
  52. outSet('取消选择图片');
  53. },{filter:'image',multiple:true,system:false});
  54. }
  55. function galleryImgsMaximum(){
  56. // 从相册中选择图片
  57. outSet('从相册中选择多张图片(限定最多选择3张):');
  58. plus.gallery.pick(function(e){
  59. for(var i in e.files){
  60. outLine(e.files[i]);
  61. }
  62. }, function(e){
  63. outSet('取消选择图片');
  64. },{filter:'image',multiple:true,maximum:3,system:false,onmaxed:function(){
  65. plus.nativeUI.alert('最多只能选择3张图片');
  66. }});// 最多选择3张图片
  67. }
  68. var lfs=null;// 保留上次选择图片列表
  69. function galleryImgsSelected(){
  70. // 从相册中选择图片
  71. outSet('从相册中选择多张图片(限定最多选择3张):');
  72. plus.gallery.pick(function(e){
  73. lfs=e.files;
  74. for(var i in e.files){
  75. outLine(e.files[i]);
  76. }
  77. }, function(e){
  78. outSet('取消选择图片');
  79. },{filter:'image',multiple:true,maximum:3,selected:lfs,system:false,onmaxed:function(){
  80. plus.nativeUI.alert('最多只能选择3张图片');
  81. }});// 最多选择3张图片
  82. }
  83. function showImg(url){
  84. // 兼容以"file:"开头的情况
  85. if(0!=url.indexOf('file://')){
  86. url='file://'+url;
  87. }
  88. var _body_ = document.body;
  89. var _div_ = document.createElement('div');
  90. _div_.style.top='0px';
  91. _div_.style.left='0px';
  92. _div_.style.height='100%';
  93. _div_.style.width='100%';
  94. _div_.style.zIndex='99999';
  95. _div_.style.position='fixed';
  96. _div_.style.background='#ffffff';
  97. _div_.id='imgShow';
  98. _div_.onclick=closeImg;
  99. var _img_=document.createElement('img');
  100. _img_.src=url;
  101. _img_.style.width='100%';
  102. _body_.appendChild(_div_);
  103. _div_.appendChild(_img_);
  104. }
  105. function closeImg(){
  106. var trnode=document.getElementById('imgShow');
  107. trnode&&trnode.parentNode.removeChild(trnode);
  108. }
  109. var list=null,first=null;
  110. document.addEventListener('DOMContentLoaded', function(){
  111. list=document.getElementById('list');
  112. first=document.getElementById('empty');
  113. }, false);
  114. // 添加列表项
  115. function createItem(path){
  116. var li = document.createElement('li');
  117. li.className = 'ditem';
  118. li.innerHTML = '<span class="iplay"><font class="aname"></font><br/><font class="ainf"></font></span>';
  119. li.setAttribute('onclick', 'displayMedia(this);' );
  120. list.insertBefore(li, first.nextSibling);
  121. var i = path.lastIndexOf('/');
  122. if(i<0){
  123. i = path.lastIndexOf('\\');
  124. }
  125. li.querySelector('.aname').innerText = path.substr(i+1);
  126. li.querySelector('.ainf').innerText = path;
  127. li.path = path;
  128. // 设置空项不可见
  129. first.style.display = 'none';
  130. }
  131. // 清除列表记录
  132. function cleanList() {
  133. list.innerHTML = '<li id="empty" class="ditem-empty">无记录</li>';
  134. empty = document.getElementById('empty');
  135. // 删除音频文件
  136. outSet('清空选择照片记录:');
  137. }
  138. // 返回后关闭图片显示
  139. var _back=window.back;
  140. window.back=function(){
  141. closeImg();
  142. _back();
  143. };
  144. </script>
  145. <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>
  146. <style type="text/css">
  147. .aname {
  148. font-size: 16px;
  149. text-overflow:ellipsis;
  150. white-space:nowrap;
  151. }
  152. .ainf {
  153. font-size: 12px;
  154. text-overflow:ellipsis;
  155. white-space:nowrap;
  156. }
  157. .iplay {
  158. display: block;
  159. background: no-repeat right center url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABYCAYAAAADWlKCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAKwwAACsMBNCkkqwAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOS8xMi8xM5w+I3MAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzVxteM2AAAD9UlEQVR4nO2b3XETMRRGDwzvoYOkg5hRAVkqiKmAdIA7wHSQVECoALsC1gXciV0BTge4gvCwgnHk9d/+WF8m97ztxrlXs8fS1Urym6enJxwd3uZugPMcFyKGCxHDhYjhQsRwIWK4EDFciBguRAwXIoYLEcOFiOFCxHAhYrgQMVyIGC5EDBcihgsRw4WI4ULEcCFiuBAx3uVuwDGY2XtgCBTAALjc8tEFMAdKYBJC+HOK9nXBm5dwUM7MCmAEXDcMMQVuQwhlV23qC2khZjYAboGrjkLOgFEIYd5RvM6RrSFmdgs80J0MYqyHGFsSuR4S60TJ9vrwCEziZ+YhhGXy/xdU9aWgqjfnW+IsgEKtvkgJiUPUPfUyZsD42DoQ68+Y+p62AG6UhjAZITt6xopq3L9vGf+Gqh6dJX+S6ilKNaRkU8YCGLSVARBjDGLMdS5jbgkkhMQiWyejSGtEG2KsghopKoU++5AV68ZDcrvXYWTH8Pghdz1R6CHpN3MFDPsc02PsYcy1qy0nJ6uQOANKZz+jfcOUmd3H6W1jYo5RcvsqtikbuXtI+kBmBxbwz8DczMZtksdcsz1tOinZhMRxPF2bGh8R4gz4amZLMxu2aEqa8zq2LQs5e0j6EB8bLv6dAz/NrGwyjMWcj3vadjJyCimS60nLeFfAbzO7bfANT3MXLdvSmJxCBsl12VHcL8AyvpkfSpo7bdvJyCkkfQfocv5/Bnw3s/mBs6Y097aFzd7JPcv6T5dv5GtcAr/2TZN7yt0IGSE908k0+RS8FiEvhhd1yKEFUw5YAVBApoe0XQrZwgL4GEIY7pLRU+5G5OwhC57PZgbAsqPYK6rdxUMXC9Npbro8fzJy9pB0qll0FPcOuDhCRl3ubEvwOYWUyXXb5YoZ1X7GqMHSfZq7bNmWxuQUki5XnDdc+n4EPoUQiiabSzFnejKl7TJOY7IJid/iaXJ7fESIFfCNas+9zQNMc05zHnjIPctKx/mrA9egflCJGLd5eDFXukGWdddQYU+95PlDWVE97GXPeS+oivf6saBZCKHoM+8+cvcQ2NyhOwMmfW4SxdgTNs9oZd0tBAEhsRDfJbcvgbIPKTtOnNzlPnECAkPWP8xsTv3ZrJ1v2UfmuKDqGRt5QgjZ9kDWyd5D1iioP1U4P3KzqZYYY5v0om38rpDpIeCHrUFMCPjPEeSE/COetf3SU/i7EEL2GVUdSjXkGfGBfWDzIFsb/q93dRizU2R7yDr+o09R/GfRzsmRrSGvFRcihgsRw4WI4ULEcCFiuBAxXIgYLkQMFyKGCxHDhYjhQsRwIWK4EDFciBguRAwXIoYLEcOFiOFCxHAhYrgQMf4CVuqCm+17t3sAAAAASUVORK5CYII=);
  160. background-size: 50px 44px;
  161. -ms-touch-action: auto;
  162. }
  163. </style>
  164. </head>
  165. <body>
  166. <br/>
  167. <div class="button" onclick="getImage()">拍照并保存到相册</div>
  168. <div class="button" onclick="galleryImg()">从相册中单选图片</div>
  169. <div class="button" onclick="galleryImgs()">从相册中多选图片</div>
  170. <div class="button" onclick="galleryImgsMaximum()">从相册中多选图片(最多三张)</div>
  171. <div class="button" onclick="galleryImgsSelected()">从相册中多选图片(保存勾选记录)</div>
  172. <br/>
  173. <div id="outpos"/>
  174. <div id="output">
  175. Gallery模块管理系统相册,如从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。
  176. </div>
  177. </body>
  178. </html>