1.首先和所有的都一樣,要分別到各個開放平臺申請appid,添加測試賬號
QQ:騰訊開放平臺 http://open.qq.com/
微信:微信開放平臺 https://open.weixin.qq.com/
微博:新浪微博開放平臺 http://open.weibo.com/
2.通過cordova添加插件
QQ:
cordova plugin add cordova-plugin-qqsdk --variable QQ_APP_ID=YOUR_QQ_APPID
微信:
cordova plugin add cordova-plugin-wechat --variable wechatappid=YOUR_WECHAT_APPID
微博:
cordova plugin add cordova-plugin-weibosdk --variable WEIBO_APP_ID=YOUR_WEIBO_APPID
3.1微博需要進一步去設置redirecturi
在你的config.xml文件中添加
<preference name="REDIRECTURI" value="YOUR_WEIBO_REDIRECTURI" />
必須要和微博開放平臺里面的OAuth2.0 授權(quán)設置的一樣
3.2 QQ需要裝@ionic-native/qqsdk
npm install @ionic-native/qqsdk --save
3.3 微信秩霍、微博需要在編譯文件中聲明變量
declare var Wechat:any;
declare var WeiboSDK:any;
之后就能在需要的地方直接使用Wechat.XXX 或者 WeiboSDK.XXX方法
4.第三方登錄代碼
4.1 QQ第三方登錄:
需要引入QQSDK模塊
import { QQSDK,QQShareOptions } from '@ionic-native/qqsdk';
constructor(public qq:QQSDK);
QQLogin(){
const loginOptions: QQShareOptions = {
client: this.qq.ClientType.QQ,
};
this.qq.ssoLogin(loginOptions)
.then((result) => {
console.log('shareNews success');
alert('token is ' + result.access_token);
alert('userid is ' + result.userid);
})
.catch(error => {
console.log(error);
});
}
4.2 微信、微博第三方登錄
sinaLogin(){
WeiboSDK.ssoLogin(function (args) {
alert('access token is ' + args.access_token);
alert('userId is ' + args.userId);
}, function (failReason) {
alert(failReason);
});
}
wechatLogin(){
let scope = "snsapi_userinfo",
state = "_" + (+new Date());
Wechat.auth(scope, state, function (response) {
// you may use response.code to get the access token.
alert(JSON.stringify(response));
}, function (reason) {
alert("Failed: " + reason);
});
}
需要注意:
微信需要認證才能使用届榄;
微博:
如果微博報錯redirect_uri_mismatch 的話 請看3.1 設置redirecturi
如果微博報錯sso package or sign error 的話 需要在你的XCode里面的Info找到Bundle identifier這一項贤壁,復制粘貼到微博開放平臺你的app中的 bundle id 中 保持兩者值一致
5.分享和登錄用法一致馒索、安裝好插件參考readme文檔
------end------