博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用的分享源码(含微博、微信、QQ分享...)
阅读量:6531 次
发布时间:2019-06-24

本文共 4096 字,大约阅读时间需要 13 分钟。

生活在大数据互联网时代下的我们,每天都在不停的刷新朋友圈、微博、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=";/>
</feature>

注意:这里有个坑,就是QQPlus区分安卓和iOS,不然在调用QQ空间分享的时候是能进入到QQ空间的界面的,但是一点提交,就会提示应用不存在。

------ 调用方法 ------

zShare.dialog('标题','文本','链接','图片')

另外:如果你在使用mobShare,想从mobShare换成独立的模块分享,你可能会遇到一个问题,就是不删除mobShare又加入weibo模块在编译的时候会提示模块冲突,那就要删掉mobShare,要删除的话你得先把config.xml中的mobShare代码删除,然后提交,再到APICloud模块管理里面删除,如果不删除代码的话APICloud模块管理是不能删除的。

转载地址:http://kwhbo.baihongyu.com/

你可能感兴趣的文章
Safari 11.0 已发布,新特性都在这儿了!
查看>>
spark 作业提交(架构层面)
查看>>
基于Hadoop生态圈的数据仓库实践 —— 环境搭建(三)笔记
查看>>
RMAN概述及其体系结构
查看>>
Shell运算符
查看>>
流程的一些规划
查看>>
mybatis
查看>>
HBase JavaAPI
查看>>
神奇的Invsqrt函数
查看>>
【转载】休眠状态和墓碑状态
查看>>
Django框架开发web网站的网页优化—页面静态化
查看>>
PHP Jquery
查看>>
mysql的MyISAM 和 InnoDB 的区别?优化MYSQL数据库的方法?
查看>>
50道sql练习题和答案
查看>>
获取本地soapUI项目路径
查看>>
窗口可视区和其他一些参数
查看>>
如何利用Mathematica调用C编写的函数
查看>>
java第四次作业
查看>>
Oracle 数据库命令个人总结
查看>>
LeetCode-删除排序数组中的重复项
查看>>