Ionic实现微信、qq、微博分享
这篇文档针对的是ionic1。ionic虽然ionic版本不同,但大体的思想还是相同的。
Ionic要想实现微信、qq、微博的分享,第一步必须先申请相应的应用权限。获得相应的应用权限之后,你才能进行后续的操作。
然后,我就对获取各个应用获取权限的步骤一一进行编写。
微信
第一步:进入微信开放平台:https://open.weixin.qq.com/。进行相应的登录。你如果没有账号,可以先进行注册,然后进行相应的登录。
第二步:点击进入管理中心。下面的步骤,我以移动应用举例。点击‘移动应用’,你然后就会发现下方有一个‘创建移动应用’按钮,点击它,进入创建的编辑页面。
进入编辑页面之后,那就简单了,一步一步填下去就行了。当然填写基本信息这一步中有要注意的地方。
这个地方是上传移动应用图片的地方。你上传的图片的大小必须跟它要求的一致,否则你会发现,你会很烦的(重复死循环,上传不上去)。
然后,填写完基本信息之后,进入填写平台信息页面。页面试下方的样子。
如果你想在ios中和Android中都可以分享内容到微信上的话,你就必须两个都申请。这里我举Android的例子。勾选上Android应用,显示如下图所示的界面
上图中先讲一下应用包名,应用包名指的是项目文件下config.xml中widget标签内的id,
取得这个id后,需要通过链接:
https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures
.apk下载apk装到手机上,apk安装完成后,打开。打开的界面如下图所示。
将复制好的包名放进去,Get SignaTrue就可以生成相对应的应用签名。生成的签名会以绿色字体显示。到目前为止相对应的应用包名和应用签名,就有了。回到微信开发平台中,编写平台信息页面,将他们填进去就行。
最后一步,提交审核。之后你就等待应用审核好就行,审核没通过,只能重新编写继续申请。
使用开发者账号登录腾讯开放平台(众创空间) 点击 应用接入 / 应用管理 / 创建应用 自己按照步骤填写完成。需要注意的是:安卓应用创建完成之后,直接在该应用下,点击IOS应用,同步进行IOS应用的创建,此时他们使用的是同一个 APP ID,请不要分别,分开创建! 创建完成后提交审核。【备注,有个重要的事项需要此处说明,同一个开发者账户创建的多个应用,如果使用同一QQ账号登录不同的产品后无法识别为同一个QQ用户,此时需要通过邮件的形式申请unionid接口】
新浪微博
微博: 大致同QQ,登录微博开放平台的后台管理系统:
http://open.weibo.com/?sudaref=www.baidu.com&display=0&retcode=6102
点击立即接入:你一步一步按照要求就可以,申请成功,取得appid。
相关cordova插件
·
QQ插件: cordova-plugin-qqsdk
安装:ionic cordova plugin add cordova-plugin-qqsdk --variable QQ_APP_ID=YOUR_QQ_APPID --save
微博插件:cordova-plugin-weibosdk
安装 使用命令:ionic cordova plugin add cordova-plugin-weibosdk --variable WEIBO_APP_ID=你的appid --save
微信插件:cordova-plugin-wechat
安装 使用命令:ionic cordova plugin add cordova-plugin-wechat --variable wechatappid=你的appid --save
代码编写
微信代码:
在controller中编写代码
1、首先判断手机有没有安装微信插件
// 检测是否安装微信插件 if ("undefined" === typeof Wechat) { console.log("Wechat plugin is not installed."); return false; }
2、在判断手机有没有装微信
Wechat.isInstalled(function (installed) { alert("Wechat installed: " + (installed ? "Yes" : "No")); }, function (reason) { alert("Failed: " + reason); });
3、分享链接代码
Wechat.share({ message: { title: "yuhao", description: "This is description.", thumb: "www/img/mickey.png", media: { type: Wechat.Type.LINK, webpageUrl: "http://blog.csdn.net/yu17310133443" } }, scene: 1 // 1是朋友圈 0是好友 }, function () { alert("Success"); }, function (reason) { alert("Failed: " + reason); });
然后,微信分享就结束了。
微博代码
1、首先判断有没有安装微博插件
// 检测是否安装微博插件 if ("undefined" === typeof WeiboSDK) { console.log("WeiboSDK plugin is not installed."); return false; }
2、分享链接代码
WeiboSDK.checkClientInstalled(function() { var args = {}; args.url = $scope.details.shareUrl || ''; args.title = $scope.details.title || ''; args.description = $scope.details.shareDesc || ''; args.image = $scope.details.shareImg; //微博有默认图片 WeiboSDK.shareToWeibo(function() { alert(“success!”); }, function(failReason) { alert(“failure!”+ failReason); }, args); }, function() { alert('您没有安装微博!'); //就确认又没安装微博 });
QQ代码
1、首先判断又没安装QQ插件
// 检测是否安装QQ插件 if ("undefined" === typeof QQSDK) { console.log("QQSDK plugin is not installed."); return false; }
2、分享链接代码
QQSDK.checkClientInstalled(function() { var args = {}; args.scene = QQSDK.Scene.QQZone;//QQSDK.Scene.QQ,QQSDK.Scene.Favorite args.url = $scope.details.shareUrl || ''; args.title = $scope.details.title || ''; args.description = $scope.details.shareDesc || ''; args.image = $scope.details.shareImg; QQSDK.shareNews(function() { alert(“success!”); }, function(failReason) { alert(“failure!”+ failReason); }, args); }, function() { alert('您没有安装qq!'); //就确认又没安装qq });