第三方平台分享插件(微信、QQ、新浪微博)
该插件支持微信分享(微信好友、朋友圈),QQ好友分享,新浪微博分享
该插件是基于ShareSDK的基础上集成微信、QQ、新浪微博的分享功能,所以需要在以上4个平台上分别注册应用信息,获取对应的appid等配置信息,进行插件的初始化。
官网链接
ShareSDK的官网(Mob平台):http://www.mob.com/
微信开放平台:https://open.weixin.qq.com/
腾讯开放平台:http://open.qq.com/
新浪微博开放平台:http://open.weibo.com/
注册教程:
Mob官网注册应用得到appkey,Mob平台用户后台使用指南:http://bbs.mob.com/forum.php?mod=viewthread&tid=8212&extra=page%3D1
微信开放平台应用得到appkey教程:
https://www.jianshu.com/p/01d549014f0a
腾讯开放平台应用得到appkid教程:
https://jingyan.baidu.com/article/d2b1d10292eabc5c7e37d4b5.html
新浪微博开放平台得到应用appkey教程:
https://jingyan.baidu.com/article/375c8e19b8024125f2a22913.html
注意微信、QQ、新浪微博等申请获取应用的appkey的信息,均需要通过审核后方可使用。
初始化插件:
1、在该插件的配置参数,需要输入对应分享平台的Key和Secret作为参数。参数对应如下表:
注意:微信、QQ、新浪微博等申请获取应用的appkey的信息,均需要通过审核后方可使用,WEIBO_REDIRECT_URL微博回调地址需要应平台上配置的一致;
集成该插件后,有2个全局变量,sharesdk和ShareSDK。
全局变量sharesdk 提供方法:分享功能、是否安装客户端
判断是否安装客户端:
sharesdk.isInstallClient.promise(ClientType).then(callback);
参数:
ClientType 客户端类型
ShareSDK.ClientType.SinaWeibo
ShareSDK.ClientType.QQ
ShareSDK.ClientType.Wechat
Callback 回调方法 该方法返回布尔值,得到是否安装该客户端
例子:
/** 是否安装微博客户端 **/ function checkWeiboClient() { sharesdk.isInstallClient.promise(ShareSDK.ClientType.SinaWeibo).then(function(isInstall){ if(isInstall) { alert("新浪微博客户端已安装"); }else { alert("未安装新浪微博客户端"); } }); }
分享功能:
sharesdk.share(platformType, shareType, shareInfo, success, fail);
参数:
platformType 分享平台类型
QQ好友分享 ShareSDK.PlatformType.QQFriend
QQ空间分享 ShareSDK.PlatformType.QZone
拷贝 ShareSDK.PlatformType.Copy
微信好友分享 ShareSDK.PlatformType.WechatSession
微信朋友圈分享 ShareSDK.PlatformType.WechatTimeline
新浪微博分享 ShareSDK.PlatformType.SinaWeibo
shareType 分享类型
文本 ShareSDK.ShareType.Text
图片 ShareSDK.ShareType.Image
网页 ShareSDK.ShareType.WebPage
shareInfo 分享信息对象
属性 icon:图片,
image:图片
title:分享内容的标题,
text:分享内容,
url:分享的链接地址
success 分享成功的回调方法
fail 分享失败的回调方法返回一个信息对象msg,msg是json对象。通过msg.state判断是取消分享还是分享失败。如果是分享失败。msg.error获取失败信息。
返回一个信息对象,属性 state:
开始ShareSDK.ResponseState.Begin :0
成功ShareSDK.ResponseState.Success :1
失败ShareSDK.ResponseState.Fail :2
取消ShareSDK.ResponseState.Cancel :3
例子:
/** 拷贝连接 */ function copyLink() { var text='https://www.lbuilder.com'; var shareInfo = {text:text}; sharesdk.share(ShareSDK.PlatformType.Copy, ShareSDK.ShareType.Text, shareInfo, success, fail); } /** 分享纯文本到微信好友 */ function shareText() { var text='这是一条测试文本~~~~'; var shareInfo = {text:text}; sharesdk.share(ShareSDK.PlatformType.WechatSession, ShareSDK.ShareType.Text, shareInfo, success, fail);
} /** 分享图片到QQ好友,只能分享一张*/ function shareImage() { var image = 'https://raw.githubusercontent.com/zhaolin0801/cordova-sharesdk-demo/master/www/img/Wechat-QRcode.jpeg'; var shareInfo = {image:image}; sharesdk.share(ShareSDK.PlatformType.QQFriend, ShareSDK.ShareType.Image, shareInfo, success, fail);
} /** 分享网页到微博 */ function shareWebPage() { var icon = 'https://raw.githubusercontent.com/zhaolin0801/cordova-sharesdk-demo/master/www/img/Wechat-QRcode.jpeg'; var title = '这是网页的标题'; var text = '这是网页的内容,android未签名只能分享单张图片到朋友圈'; var url = 'http://carhot.cn/articles/1'; var shareInfo = {icon:icon, title:title, text:text, url:url}; sharesdk.share(ShareSDK.PlatformType.SinaWeibo, ShareSDK.ShareType.WebPage, shareInfo, success, fail);
} /****回调方法 *****/ function success() { alert('sucessed!'); } function fail(msg) { if(msg.state == ShareSDK.ResponseState.Cancel) { alert('cancel!'); }else { alert('failed!: ' + msg.error); } }
客户端类型(用于判断是否安装了相应的客户端) | 说明 |
ShareSDK.ClientType.SinaWeibo | 新浪微博客户端 |
ShareSDK.ClientType.Wechat | 微信客户端 |
ShareSDK.ClientType.QQ | QQ客户端 |
平台类型(分享到指定平台) | 说明 |
ShareSDK.PlatformType.QQFriend | QQ好友 |
ShareSDK.PlatformType.QZone(暂不支持) | QQ空间 |
ShareSDK.PlatformType.Copy | 拷贝 |
ShareSDK.PlatformType.WechatSession | 微信好友 |
ShareSDK.PlatformType.WechatTimeline | 微信朋友圈 |
ShareSDK.PlatformType.SinaWeibo | 新浪微博 |
分享内容类型 | 说明 |
ShareSDK.ShareType.Text | 文本类型 |
ShareSDK.ShareType.Image | 图片类型 |
ShareSDK.ShareType.WebPage | 网页类型 |
分享响应状态 | 说明 |
ShareSDK.ResponseState.Begin | 开始分享 |
ShareSDK.ResponseState.Success | 分享成功 |
ShareSDK.ResponseState.Fail | 分享失败 |
ShareSDK.ResponseState.Cancel | 取消分享 |
注意:
1. Android微信分享需要使用审核通过后的签名文件打包才能分享。
2. 目前仅支持android和ios平台的微信好友、微信朋友前、微博、QQ好友分享以及拷贝链接功能。分享类型包括:纯文本,单张图片,网页。