share_qq.html 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  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>QQ分享</title>
  9. <script type="text/javascript" src="../js/common.js"></script>
  10. <script type="text/javascript">
  11. var shares=null;
  12. var sqq=null;
  13. // H5 plus事件处理
  14. function plusReady(){
  15. updateSerivces();
  16. }
  17. if(window.plus){
  18. plusReady();
  19. }else{
  20. document.addEventListener('plusready', plusReady, false);
  21. }
  22. /**
  23. * 更新分享服务
  24. */
  25. function updateSerivces(){
  26. plus.share.getServices(function(s){
  27. shares={};
  28. for(var i in s){
  29. var t=s[i];
  30. shares[t.id]=t;
  31. }
  32. sqq=shares['qq'];
  33. }, function(e){
  34. outSet('获取分享服务列表失败:'+e.message);
  35. });
  36. }
  37. // 分享文本
  38. function shareText(){
  39. var msg={type:'text'};
  40. if(!text_title.value){
  41. plus.nativeUI.alert('请输入要分享的内容!');
  42. return;
  43. }
  44. msg.title=text_title.value;
  45. msg.href='http://www.dcloud.io';
  46. sqq?share(sqq, msg):plus.nativeUI.alert('当前环境不支持QQ分享操作!');
  47. }
  48. // 分享图片
  49. function shareImage(){
  50. var msg={type:'image'};
  51. if(!image_picture.realUrl){
  52. plus.nativeUI.alert('请选择要分享的图片!');
  53. return;
  54. }
  55. msg.pictures=[image_picture.realUrl];
  56. sqq?share(sqq, msg):plus.nativeUI.alert('当前环境不支持QQ分享操作!');
  57. }
  58. // 分享音乐
  59. function shareMusic(){
  60. var msg={type:'music'};
  61. if(!music_media.value){
  62. plus.nativeUI.alert('请输入分享网页的链接地址!');
  63. music_media.focus();
  64. return;
  65. }
  66. msg.media=music_media.value;
  67. if(!music_title.value){
  68. plus.nativeUI.alert('请输入分享网页的标题!');
  69. music_title.focus();
  70. return;
  71. }
  72. msg.title=music_title.value;
  73. if(!music_content.value){
  74. plus.nativeUI.alert('请输入分享网页的描述!');
  75. music_content.focus();
  76. return;
  77. }
  78. msg.content=music_content.value;
  79. msg.href=music_href.value;
  80. sqq?share(sqq, msg):plus.nativeUI.alert('当前环境不支持QQ分享操作!');
  81. }
  82. // 分享
  83. function share(srv, msg, button){
  84. outSet('分享操作:');
  85. if(!srv){
  86. outLine('无效的分享服务!');
  87. return;
  88. }
  89. button&&(msg.extra=button.extra);
  90. // 发送分享
  91. if(srv.authenticated){
  92. outLine('---已授权---');
  93. doShare(srv, msg);
  94. }else{
  95. outLine('---未授权---');
  96. srv.authorize(function(){
  97. doShare(srv, msg);
  98. }, function(e){
  99. outLine('认证授权失败:'+JSON.stringify(e));
  100. });
  101. }
  102. }
  103. // 发送分享
  104. function doShare(srv, msg){
  105. outLine(JSON.stringify(msg));
  106. srv.send(msg, function(){
  107. outLine('分享到"'+srv.description+'"成功!');
  108. }, function(e){
  109. outLine('分享到"'+srv.description+'"失败: '+JSON.stringify(e));
  110. });
  111. }
  112. // 解除授权
  113. function cancelAuth(){
  114. outSet('解除授权:');
  115. if(sqq){
  116. if(sqq.authenticated){
  117. outLine('取消"'+sqq.description+'"');
  118. }
  119. sqq.forbid();
  120. }else{
  121. outLine('当前环境不支持QQ分享操作!');
  122. }
  123. }
  124. // 拍照添加图片分享
  125. function imageCameraPicture(){
  126. outSet('拍照添加分享图片:');
  127. var cmr=plus.camera.getCamera();
  128. cmr.captureImage(function(p){
  129. plus.io.resolveLocalFileSystemURL(p,function(entry){
  130. image_picture.src=entry.toLocalURL();
  131. image_picture.realUrl=p;
  132. outLine('拍照图片:'+image_picture.realUrl);
  133. },function(e){
  134. outLine('读取拍照文件错误:'+e.message);
  135. } );
  136. },function(e){
  137. outLine('拍照失败:'+e.message);
  138. });
  139. }
  140. // 从相册添加图片分享
  141. function imageGalleryPicture(){
  142. outSet('从相册添加分享图片:');
  143. plus.gallery.pick(function(p){
  144. // 从相册返回的路径不需要转换可以直接使用
  145. image_picture.src=p;
  146. image_picture.realUrl=image_picture.src;
  147. outLine('选择图片:'+image_picture.realUrl);
  148. });
  149. }
  150. // 使用Logo图片分享
  151. function imageLogoPicture(){
  152. outSet('使用Logo分享图片:');
  153. var url='_www/logo.png';
  154. plus.io.resolveLocalFileSystemURL(url, function(entry){
  155. image_picture.src=entry.toLocalURL();
  156. image_picture.realUrl=url;
  157. }, function(e){
  158. outLine('读取Logo文件错误:'+e.message);
  159. });
  160. }
  161. </script>
  162. <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>
  163. <style type="text/css">
  164. .sharecontent{
  165. width:80%;
  166. -webkit-user-select:text;
  167. border: 1px solid #6C6C6C;
  168. -webkit-border-radius: 2px;
  169. border-radius: 2px;
  170. }
  171. .sharepicture{
  172. width:30%;
  173. }
  174. .share_input{
  175. width:90%;
  176. -webkit-user-select:text;
  177. border: 1px solid #6C6C6C;
  178. -webkit-border-radius: 2px;
  179. border-radius: 2px;
  180. margin-bottom: .5em;
  181. }
  182. </style>
  183. </head>
  184. <body>
  185. <br/>
  186. <p class="heading">分享文本:</p>
  187. <textarea id="text_title" class="sharecontent" rows="3">我正在使用HBuilder开发移动应用,赶紧跟我一起来体验!</textarea>
  188. <p class="des">注意:QQ分享Android平台需设置链接地址(iOS可选)。</p>
  189. <div class="button" onclick="shareText()">分享文本</div>
  190. <hr color="#EEE"/><br/><br/>
  191. <p class="heading">分享图片:</p>
  192. <table style="width:100%;">
  193. <tbody>
  194. <tr>
  195. <td style="width:30%"><div class="button button-select" onclick="imageCameraPicture()">拍照</div></td>
  196. <td style="width:30%"><div class="button button-select" onclick="imageGalleryPicture()">相册选取</div></td>
  197. <td style="width:30%"><div class="button button-select" onclick="imageLogoPicture()">使用logo图</div></td>
  198. </tr>
  199. </tbody>
  200. </table>
  201. <img id="image_picture" class="sharepicture" src="../img/add.png"/>
  202. <br/>
  203. <div class="button" onclick="shareImage()">分享图片</div>
  204. <hr color="#EEE"/><br/><br/>
  205. <p class="heading">分享音乐:</p>
  206. <table style="width:100%;">
  207. <tbody>
  208. <tr>
  209. <td style="width:20%;text-align:right;font-size:12px;">音乐地址</td>
  210. <td style="width:65%">
  211. <input id="music_media" class="share_input" type="url" value="http://dl.stream.qqmusic.qq.com/C400000q83572f7Uea.m4a?vkey=A1C6E05C86AFC64CB41106C58CFA7777EDB5DF6F007885F311E6EF8FEFA3987E6642030D74D9246B70649F4051ACD534C392A147CFB0CEEB&guid=4414564731&uin=26156427&fromtag=66" placeholder="请输入要分享的音乐地址"/>
  212. </td>
  213. </tr>
  214. <tr>
  215. <td style="width:20%;text-align:right;font-size:12px;">音乐标题</td>
  216. <td style="width:65%">
  217. <input id="music_title" class="share_input" type="url" value="吴亦凡-Hold Me Down" placeholder="请输入要分享的音乐标题"/>
  218. </td>
  219. </tr>
  220. <tr>
  221. <td style="width:20%;text-align:right;font-size:12px;">音乐描述</td>
  222. <td style="width:65%">
  223. <input id="music_content" class="share_input" type="url" value="《Hold Me Down》(中文版),是吴亦凡新专辑的第二支中文单曲。通过轻快的节奏、朗朗上口的副歌,传递出夏日空气里弥漫的甜蜜气息。" placeholder="请输入要分享的音乐描述"/>
  224. </td>
  225. </tr>
  226. <tr>
  227. <td style="width:20%;text-align:right;font-size:12px;">音乐链接</td>
  228. <td style="width:65%">
  229. <input id="music_href" class="share_input" type="url" value="https://y.qq.com/n/yqq/song/215486097_num.html?ADTAG=h5_playsong&no_redirect=1" placeholder="请输入要分享的音乐链接"/>
  230. </td>
  231. </tr>
  232. </tbody>
  233. </table>
  234. <p class="des">分享音乐需要设置链接,否则可能会分享失败。</p>
  235. <div class="button" onclick="shareMusic()">分享音乐</div>
  236. <hr color="#EEE"/>
  237. <div id="outpos"/>
  238. <div id="output">
  239. QQ分享支持分享文本(可配置链接)、图片、音乐(网络地址)等。
  240. </div>
  241. </body>
  242. </html>