Skip to content

Latest commit

 

History

History
216 lines (188 loc) · 8.95 KB

README_ZH.md

File metadata and controls

216 lines (188 loc) · 8.95 KB

cordova-plugin-qqsdk

npm npm platform GitHub license

这个一个 QQ SDK 的 Cordova 插件。 English

如果你希望使用一个微博的 Cordova 插件可以查看这里.                    

Table of Contents

功能

  • QQ 登录
  • QQ 登出
  • QQ 分享(文字、图片、新闻网页、音乐)
  • QQ 空间分享(文字、图片、新闻网页、音乐)
  • QQ 收藏(文字、图片、新闻网页、音乐)
  • 检查 QQ 手机客户端端是否安装

安装要求

  • Cordova Version 3.5+
  • Cordova-Android >= 4.0
  • Cordova-iOS >= 4.0

安装

  1. 命令行运行 cordova plugin add cordova-plugin-qqsdk --variable QQ_IOS_APP_ID=YOUR_QQ_IOS_APPID QQ_ANDROID_APP_ID=YOUR_QQ_ANDROID_APPID
  2. 命令行运行 cordova build

文档

支持的接口

  1. ssoLogin
  2. Logout
  3. checkClientInstalled
  4. Share(see form below)
Platform iOS iOS   iOS   Android Android Android
ShareScene   QQ     QQZone QQ Favorite  QQ     QQZone QQ Favorite
Text        √       √     √          ✕         √     √      
Image        √     √   √        √     √   √    
    News          √       √         √          √         √         √      
     Audio          √       √         √          √         √         √      

错误码

使用 SDK 时,所有结果都会通过回调返回给应用。在回调的结果中,会包含每次调用结果的返回码。 正常情况下返回码为 0,表示调用成功。 如果返回码不为 0,说明调用出错,需要根据返回码的值来定位错误原因。
110201:未登陆
110405:登录请求被限制
110404:请求参数缺少 appid
110401:请求的应用不存在
110407:应用已经下架
110406:应用没有通过审核
100044:错误的 sign
110500:获取用户授权信息失败
110501:获取应用的授权信息失败
110502:设置用户授权失败
110503:获取 token 失败
110504:系统内部错误

详情查看这里

关于图片

这个插件中的图片分享、新闻分享、音乐分享功能都要使用到图片,以下类型的图片在这些功能中都支持

  1. 网络图片
  2. Base64
  3. 本地图片(图片的绝对路径)

使用方式

检查客户端是否安装
var args = {};
args.client = QQSDK.ClientType.QQ;//QQSDK.ClientType.QQ,QQSDK.ClientType.TIM;
QQSDK.checkClientInstalled(function () {
  alert('client is installed');
}, function () {
  // if installed QQ Client version is not supported sso,also will get this error
  alert('client is not installed');
}, args);
登录
var args = {};
args.client = QQSDK.ClientType.QQ;//QQSDK.ClientType.QQ,QQSDK.ClientType.TIM;
QQSDK.ssoLogin(function (result) {
  alert('token is ' + result.access_token);
  alert('userid is ' + result.userid);
  alert('expires_time is ' + new Date(parseInt(result.expires_time)) + ' TimeStamp is ' + result.expires_time);
}, function (failReason) {
  alert(failReason);
}, args);
登出
QQSDK.logout(function () {
  alert('logout success');
}, function (failReason) {
  alert(failReason);
});
分享文字
var args = {};
args.client = QQSDK.ClientType.QQ;//QQSDK.ClientType.QQ,QQSDK.ClientType.TIM;
args.scene = QQSDK.Scene.QQ;//QQSDK.Scene.QQZone,QQSDK.Scene.Favorite
args.text = '这个是 Cordova QQ 分享文字';
QQSDK.shareText(function () {
  alert('shareText success');
}, function (failReason) {
  alert(failReason);
}, args);
分享图片
var args = {};
args.client = QQSDK.ClientType.QQ;//QQSDK.ClientType.QQ,QQSDK.ClientType.TIM;
args.scene = QQSDK.Scene.QQ;//QQSDK.Scene.QQZone,QQSDK.Scene.Favorite
args.title = '这个是 Cordova QQ 图片分享的标题';
args.description = '这个是 Cordova QQ 图片分享的描述';
args.image = 'https://cordova.apache.org/static/img/cordova_bot.png';
QQSDK.shareImage(function () {
  alert('shareImage success');
}, function (failReason) {
  alert(failReason);
}, args);
分享新闻
var args = {};
args.client = QQSDK.ClientType.QQ;//QQSDK.ClientType.QQ,QQSDK.ClientType.TIM;
args.scene = QQSDK.Scene.QQ;//QQSDK.Scene.QQZone,QQSDK.Scene.Favorite
args.url = 'https://cordova.apache.org/';
args.title = '这个是 Cordova QQ 新闻分享的标题';
args.description = '这个是 Cordova QQ 新闻分享的描述';
args.image = 'https://cordova.apache.org/static/img/cordova_bot.png';
QQSDK.shareNews(function () {
  alert('shareNews success');
}, function (failReason) {
  alert(failReason);
}, args);
分享音乐
var args = {};
args.client = QQSDK.ClientType.QQ;//QQSDK.ClientType.QQ,QQSDK.ClientType.TIM;
args.scene = QQSDK.Scene.QQ;//QQSDK.Scene.QQZone,QQSDK.Scene.Favorite
args.url = 'https://y.qq.com/portal/song/001OyHbk2MSIi4.html';
args.title = '十年';
args.description = '陈奕迅';
args.image = 'https://y.gtimg.cn/music/photo_new/T001R300x300M000003Nz2So3XXYek.jpg';
args.flashUrl = 'http://stream20.qqmusic.qq.com/30577158.mp3';
QQSDK.shareAudio(function () {
  alert('shareAudio success');
}, function (failReason) {
  alert(failReason);
}, args);
获取用户信息
var url = 'https://graph.qq.com/user/get_user_info?access_token=' + accessToken + '&oauth_consumer_key=' + QQ_APP_ID + '&openid=' + userId;
http.get(url)

关于SDK

本插件 Android SDK 的版本是 3.2.1,iOS SDK 的版本是 3.2.3,你可以在这里下载最新版本的 SDK

注意事项

请认真阅读文档,请认真阅读文档,请认真阅读文档

  1. 这个插件要求 Cordova-Android 的版本 >= 4.0,推荐使用 Cordova 5.0 或更高的版本,因为从 Cordova 5.0 开始 Cordova-Android 4.0 是默认使用的 Android 版本
  2. 请在 Cordova 的 deviceready 事件触发以后再调用本插件!!!
  3. 在低于 5.1.1 的 Cordova 版本中存在一个 Bug,如果你有多个插件要修改 iOS 工程中的 “*-Info.plist” CFBundleURLTypes, 只有第一个安装的插件才会生效.所以安装完插件请务必在你的 Xcode 工程里面检查一下 URLTypes。 关于这个 bug 的详情你可以在 这里找到 建议安装使用 5.1.1 及以上的 Cordova 版本
  4. Android 版本请确保你的签名是正确的
  5. 分享的 URL 长度不要过长,图片不要太大,不然会分享失败,因为 SDK 做了限制

Demo

在安装完这个插件以后,把 Cordova 工程中的代码替换为 example_www 中的代码,安装 Cordova 相机插件,在 build 以后可以进行各个功能测试,以下为运行效果图:

example

贡献代码

欢迎提交 PR,贡献你的代码,如果有新功能,请提供 Demo。

开源证书

cordova-plugin-qqsdk 遵照了 MIT 证书. 详情可以查看 证书 文件