# 微信小程序客户端腾讯云增强 SDK
[![Build Status](https://travis-ci.org/tencentyun/weapp-client-sdk.svg?branch=master)](https://travis-ci.org/tencentyun/weapp-client-sdk)
[![Coverage Status](https://coveralls.io/repos/github/tencentyun/weapp-client-sdk/badge.svg?branch=master)](https://coveralls.io/github/tencentyun/weapp-client-sdk?branch=master)
[![License](http://img.shields.io/npm/l/qcloud-weapp-client-sdk.svg)](LICENSE)
本 SDK 是腾讯云[微信小程序一站式解决方案](https://github.com/tencentyun/weapp-solution)的组成部分,为小程序客户端开发提供 SDK 支持会话服务和信道服务。
## SDK 获取与安装
解决方案[客户端 Demo](https://github.com/tencentyun/weapp-client-demo/) 已经集成并使用最新版的 SDK,需要快速了解的可以从 Demo 开始。
如果需要单独开始,本 SDK 已经发布为 bower 模块,可以直接安装到小程序目录中。
```sh
npm install bower -g
bower install qcloud-weapp-client-sdk
```
安装之后,就可以使用 `require` 引用 SDK 模块:
```js
var qcloud = require('./bower_components/qcloud-weapp-client-sdk/index.js');
```
## 会话服务
[会话服务](https://github.com/tencentyun/weapp-solution/wiki/%E4%BC%9A%E8%AF%9D%E6%9C%8D%E5%8A%A1)让小程序拥有会话管理能力。
### 登录
登录可以在小程序和服务器之间建立会话,服务器由此可以获取到用户的标识和信息。
```js
var qcloud = require('./bower_components/qcloud-weapp-client-sdk/index.js');
// 设置登录地址
qcloud.setLoginUrl("https://199447.qcloud.la/login");
qcloud.login({
success: function(userInfo) {
console.log("登录成功", userInfo);
},
fail: function(err) {
console.log("登录失败", err);
}
});
```
本 SDK 需要配合云端 SDK 才能提供完整会话服务。通过 [setLoginUrl](#setLoginUrl) 设置登录地址,云服务器在该地址上使用云端 SDK 处理登录请求。
> `setLoginUrl` 方法设置登录地址之后会一直有效,因此你可以在微信小程序启动时设置。
登录成功后,可以获取到当前微信用户的基本信息。
### 请求
如果希望小程序的网络请求包含会话,登录之后使用 [request](#request) 方法进行网络请求即可。
```js
qcloud.request({
url: 'http://199447.qcloud.la/user',
success: function(response) {
console.log(response);
},
fail: function(err) {
console.log(err);
}
});
```
如果调用 `request` 之前还没有登录,则请求不会带有会话。`request` 方法也支持 `login` 参数支持在请求之前自动登录。
```js
// 使用 login 参数之前,需要设置登录地址
qcloud.setLoginUrl('https://199447.qcloud.la/login');
qcloud.request({
login: true,
url: 'http://199447.qcloud.la/user',
success: function(response) {
console.log(response);
},
fail: function(err) {
console.log(err);
}
});
```
关于会话服务详细技术说明,请参考 [Wiki](https://github.com/tencentyun/weapp-solution/wiki/%E4%BC%9A%E8%AF%9D%E6%9C%8D%E5%8A%A1)。
## 信道服务
[信道服务](https://github.com/tencentyun/weapp-solution/wiki/%E4%BF%A1%E9%81%93%E6%9C%8D%E5%8A%A1)小程序支持利用腾讯云的信道资源使用 WebSocket 服务。
```js
// 创建信道,需要给定后台服务地址
var tunnel = this.tunnel = new qcloud.Tunnel('https://199447.qcloud.la/tunnel');
// 监听信道内置消息,包括 connect/close/reconnecting/reconnect/error
tunnel.on('connect', () => console.log('WebSocket 信道已连接'));
tunnel.on('close', () => console.log('WebSocket 信道已断开'));
tunnel.on('reconnecting', () => console.log('WebSocket 信道正在重连...'));
tunnel.on('reconnect', () => console.log('WebSocket 信道重连成功'));
tunnel.on('error', error => console.error('信道发生错误:', error));
// 监听自定义消息(服务器进行推送)
tunnel.on('speak', speak => console.log('收到 speak 消息:', speak));
// 打开信道
tunnel.open();
// 发送消息
tunnel.emit('speak', { word: "hello", who: { nickName: "techird" }});
// 关闭信道
tunnel.close();
```
信道服务同样需要业务服务器配合云端 SDK 支持,构造信道实例的时候需要提供业务服务器提供的信道服务地址。通过监听信道消息以及自定义消息来通过信道实现业务。
关于信道使用的更完整实例,建议参考客户端 Demo 中的[三木聊天室应用源码](https://github.com/tencentyun/weapp-client-demo/blob/master/pages/chat/chat.js)。
关于信道服务详细技术说明,请参考 [Wiki](https://github.com/tencentyun/weapp-solution/wiki/%E4%BF%A1%E9%81%93%E6%9C%8D%E5%8A%A1)。
## API
### setLoginUrl
设置会话服务登录地址。
#### 语法
```js
qcloud.setLoginUrl(loginUrl);
```
#### 参数
|参数 |类型 |说明
|-------------|---------------|--------------
|loginUrl |string |会话服务登录地址
### login
登录,建立微信小程序会话。
#### 语法
```js
qcloud.login(options);
```
#### 参数
|参数 |类型 |说明
|-------------|---------------|--------------
|options |PlainObject |会话服务登录地址
|options.success | () => void | 登录成功的回调
|options.error | (error) => void | 登录失败的回调
### request
进行带会话的请求。
#### 语法
```js
qcloud.request(options);
```
#### 参数
|参数 |类型 |说明
|-------------|---------------|--------------
|options |PlainObject | 会话服务登录地址
|options.login | bool | 是否自动登录以获取会话,默认为 false
|options.url | string | 必填,要请求的地址
|options.header | PlainObject | 请求头设置,不允许设置 Referer
|options.method | string | 请求的方法,默认为 GET
|options.success | (response) => void | 登录成功的回调。<ul><li>`response.statusCode`:请求返回的状态码</li><li>`response.data`:请求返回的数据</li></ul>
|options.error | (error) => void | 登录失败的回调
|options.complete | () => void | 登录完成后回调,无论成功还是失败
### Tunnel
表示一个信道。由于小程序的限制,同一时间只能有一个打开的信道。
#### constructor
##### 语法
```js
var tunnel = new Tunnel(tunnelUrl);
```
#### 参数
|参数 |类型 |说明
|-------------|---------------|--------------
|tunnelUrl |String | 会话服务登录地址
#### on
监听信道上的事件。信道上事件包括系统事件和服务器推送消息。
##### 语法
```js
tunnel.on(type, listener);
```
##### 参数
|参数 |类型 |说明
|-------------|---------------|--------------
|type |string | 监听的事件类型
|listener |(message?: any) => void | 监听器,具体类型的事件发生时调用监听器。如果是消息,则会有消息内容。
##### 事件
|事件 |说明
|-------------|-------------------------------
|connect |信道连接成功后回调
|close |信道关闭后回调
|reconnecting |信道发生重连时回调
|reconnected |信道重连成功后回调
|error |信道发生错误后回调
|[message] |信道服务器推送过来的消息类型,如果消息类型和上面内置的时间类型冲突,需要在监听的时候在消息类型前加 `@`
|\* |监听所有事件和消息,监听器第一个参数接收到时间或消息类型
#### open
打开信道,建立连接。由于小程序的限制,同一时间只能有一个打开的信道。
##### 语法
```js
tunnel.open();
```
#### emit
向信道推送消息。
##### 语法
```js
tunnel.emit(type, content);
```
##### 参数
|参数 |类型 |说明
|-------------|---------------|--------------
没有合适的资源?快使用搜索试试~ 我知道了~
130个微信小程序源码(下).zip
共4000个文件
js:1211个
png:1026个
wxss:538个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 29 浏览量
2023-06-24
15:38:57
上传
评论
收藏 86.67MB ZIP 举报
温馨提示
地图定位-小程序完整demo:飞翔的小鸟:canvas实现,java后端(适用1221)-小程序官方Demo-小程序版2048-小程序页面生成器-康爱多微商城:学习界面设计-录音机-微票-我厨tab界面设计-手势解锁-排队取号,map组件使用-掘金首页信息流-摇一摇换文章-教务系统-文件名+大小+数字排序.bat-新浪读书-新闻客户端-易打卡表单设计-星巴克中国-智能机器人-机器人兔兔-极客学院-果库-查拼音-校内新闻大图-框架-步步高字典-水浒传-治疗师-涂鸦-滑动选项卡-滴滴公交-查公交-瀑布流布局-用户反馈组件-电商-拼团倒计时-电商小程序-电影推荐-电影日历-画布:时钟-番茄时钟-百度小说-相册;处理用户信息-省市选择控件-知乎-知乎日报-知乎日报1-科学计算器-移动小商城:基于node,包含前后台-移动端商城-简易计算器-网易云课堂-腾讯云小程序一站式解决方案-自定义tabbar-芒果TV-语音跟读-豆瓣图书-豆瓣电影-货币汇率-购物车-跑步地理位置计时器-身份证查询-车源宝-轮播图+菜单-轮播图变换-辩论倒计时-重邮-面包旅行:界面设计,文本展示-题库:选择选项,切换至下一
资源推荐
资源详情
资源评论
收起资源包目录
130个微信小程序源码(下).zip (4000个子文件)
.babelrc 470B
.babelrc 47B
app.js.bak 719B
.classpath 493B
ionic.css 247KB
ionic.css 246KB
weui.css 236KB
ionic.min.css 195KB
weui.min.css 45KB
font-awesome.css 34KB
skyvow.css 21KB
grid.css 10KB
animate.css 7KB
angular-weui.css 4KB
common.css 2KB
background.css 1KB
main.css 362B
demo导入说明.docx 182KB
.DS_Store 10KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.editorconfig 148B
enc 548B
enc2 568B
ionicons.eot 118KB
ionicons.eot 118KB
fontawesome-webfont.eot 75KB
.eslintignore 31B
.eslintrc 1KB
.eslintrc 125B
.flowconfig 152B
preview.gif 4.39MB
preview.gif 4.39MB
5.gif 3MB
5.gif 3MB
3.gif 2.62MB
3 (1).gif 2.62MB
壹药网1.gif 2.19MB
1.gif 2.16MB
1.gif 2.04MB
3.gif 1.73MB
1.gif 1.58MB
zhihu.gif 1.5MB
zhihu.gif 1.5MB
2.gif 1.39MB
navigation.gif 1.13MB
index_scroll.gif 969KB
1.gif 860KB
masonry.gif 797KB
1.gif 797KB
1.gif 772KB
1.gif 420KB
4.gif 379KB
4.gif 379KB
wxSortPickerView.gif 307KB
wxSortPickerView.gif 307KB
bottom_tab.gif 230KB
bottom_tab.gif 230KB
fullpage.GIF 191KB
1.gif 191KB
top_tab.gif 152KB
1.gif 115KB
1.gif 109KB
tabbar.gif 86KB
loading.gif 67KB
1.gif 53KB
1.gif 48KB
loading.gif 46KB
loading.gif 18KB
logo.gif 15KB
logo.gif 15KB
logo.gif 15KB
loading.gif 3KB
.gitattributes 378B
.gitattributes 378B
.gitattributes 378B
.gitattributes 378B
.gitignore 3KB
.gitignore 605B
.gitignore 574B
.gitignore 574B
.gitignore 574B
.gitignore 393B
.gitignore 254B
共 4000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 40
资源评论
阿星先森
- 粉丝: 149
- 资源: 1453
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功