经常使用的分享源码(含微博、微信、QQ分享...)

生活在大数据互联网时期下的我们,天天都在不断的革新朋友圈、微博、QQ空间,看到好的文章、图片等都邑情不自禁的想分享。运用者能够一秒钟完成内容分享,然则开辟者要跳过不少坑后,才开辟出这么便利的分享功用。

那末,开辟者在开辟微博、微信、QQ分享功用时,怎么做才跳过这些坑,顺利完成分享功用?本日,柚子君直接分享源码给人人,帮你们收缩开辟时刻。

—— 这部份能够放在大众的JS内里 ——

var zShare = {};
zShare.dialog = function(title,text,url,img){
var shareItems = [

       {text:'微信挚友',icon:'widget://image/wxsession.png'},
       {text:'微信朋友圈',icon:'widget://image/wxtimeline.png'},
       {text:'新浪微博',icon:'widget://image/sinaWb.png'},
       {text:'QQ',icon:'widget://image/qq.png'},
       {text:'QQ空间',icon:'widget://image/qZone.png'}
   ]

var shareColumn = 5;
var dialogBox = api.require(‘dialogBox’);
dialogBox.actionMenu ({

   rect:{h:150},
   texts:{cancel:'作废'},
   items:shareItems,
   styles:{
       bg:'#FFF',
       column:shareColumn,
       itemText: {color:'#000',size: 12,marginT:8},
       itemIcon: {size:50},
       cancel: {color:'#000',h: 40,size: 14}
   }

}, function(ret){

   if(ret.eventType=='cancel'){
       dialogBox.close({dialogName:'actionMenu'});
   } else if(ret.eventType=='click'){
       if(ret.index==0){
           zShare.wxNews('session',title,text,url,img);
       } else if(ret.index==1){
           zShare.wxNews('timeline',title,text,url,img);
       } else if(ret.index==2){
           zShare.weiboNews('sinaWb',title,text,url,img);
       } else if(ret.index==3){
           zShare.qqNews('QFriend',title,text,url,img);
       } else if(ret.index==4){
           zShare.qqNews('QZone',title,text,url,img);
       }
   }

});
}
zShare.wxNews = function(tar,title,text,url,img){
filename = (new Date()).valueOf()+’.’+zShare.ext(img);
api.download({

   url: img,
   savePath: 'fs://'+filename,
   report: false,
   cache: true,
   allowResume: true

}, function(ret, err) {

   var wx = api.require('wx');
   wx.isInstalled(function(ret){
       if(ret.installed) {
           api.toast({msg:'分享中,请稍候',duration:2000,location:"middle"});
       } else {
           api.toast({msg:'没有装置微信,没法举行分享',duration:2000,location:"middle"});
       }
   });
   wx.shareWebpage({
       apiKey: '',
       scene: tar,
       title: title,
       description: text,
       thumb: 'fs://'+filename,
       contentUrl: url
   }, function(ret, err) {
       if (ret.status) {
           api.toast({msg: '分享胜利',duration:2000, location: "middle"});
       }
   });

});
}
zShare.qqNews = function(tar,title,text,url,img){
var qq = api.require(‘QQPlus’);
qq.installed(function(ret){

   if(ret.status) {
       api.toast({msg:'分享中,请稍候',duration:2000,location:"middle"});
   } else {
       api.toast({msg:'没有装置QQ,没法举行分享',duration:2000,location:"middle"});
   }

});
qq.shareNews({

   url: url,
   title: title,
   description: text,
   imgUrl: img,
   type: tar

},function(ret,err){

   if (ret.status){
       api.toast({msg: '分享胜利',duration:2000, location: "botoom"});
   }

});
}
zShare.weiboNews = function(tar,title,text,url,img){
filename = (new Date()).valueOf()+’.’+zShare.ext(img);
api.download({

   url: img,
   savePath: 'fs://'+filename,
   report: false,
   cache: true,
   allowResume: true

}, function(ret, err) {

   var weibo = api.require('weibo');
   weibo.shareImage({
       text: title+text+url,
       imageUrl: 'fs://'+filename
   }, function(ret, err) {
       if (ret.status) {
           api.toast({msg:'分享胜利',duration:2000,location:"middle"});
       }
   });

});
}
zShare.ext = function(fileName) {
return fileName.substring(fileName.lastIndexOf(‘.’) + 1);
}

—— 这部份能够放在config.xml ——

<feature name=”QQPlus”>
<param name=”urlScheme” value=”tencent123456789″/>
<param name=”apiKey” value=”123456789″/>
</feature>
<feature name=”wx”>
<param name=”urlScheme” value=”wx1**2e”/>
<param name=”apiKey” value=”wx1**2e”/>
<param name=”apiSecret” value=”6a9*43c”/>
</feature>
<feature name=”weibo”>
<param name=”urlScheme” value=”wb123456789″/>
<param name=”apiKey” value=”123456789″/>
<param name=”registUrl” value=”http://www.apicloud.com&quot;/>
</feature>

注重:这里有个坑,就是QQPlus辨别安卓和iOS,不然在挪用QQ空间分享的时刻是能进入到QQ空间的界面的,然则一点提交,就会提醒运用不存在。

—— 挪用要领 ——

zShare.dialog(‘题目’,’文本’,’链接’,’图片’)

别的:假如你在运用mobShare,想从mobShare换成自力的模块分享,你可能会碰到一个题目,就是不删除mobShare又到场weibo模块在编译的时刻会提醒模块争执,那就要删掉mobShare,要删除的话你得先把config.xml中的mobShare代码删除,然后提交,再到APICloud模块治理内里删除,假如不删除代码的话APICloud模块治理是不能删除的。

    原文作者:攻城狮Right
    原文地址: https://segmentfault.com/a/1190000012910946
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞