# 微信小程序客户端腾讯云增强 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);
```
##### 参数
|参数 |类型 |说明
|-------------|---------------|--------------
没有合适的资源?快使用搜索试试~ 我知道了~
游戏-你画我猜.zip
共241个文件
wxss:81个
js:53个
json:46个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 35 浏览量
2023-09-05
13:30:30
上传
评论
收藏 259KB ZIP 举报
温馨提示
小程序是一种轻量级的应用程序,可以在微信等平台上运行,具有快速、便捷和跨平台的特点。因此,我们选择开发小程序项目源码,以满足开发人员的需求。 首先,我们的小程序项目源码提供了丰富的功能和模块,可以满足各种类型的小程序应用需求。无论是电商、社交、教育还是娱乐,我们的项目源码都提供了相应的功能和界面设计,使得开发人员可以快速构建符合需求的小程序应用。 其次,我们的小程序项目源码具有良好的可扩展性和可定制性。我们将项目源码设计为模块化的结构,开发人员可以根据自己的需求选择和定制所需的功能模块。同时,我们还提供了丰富的文档和示例代码,以帮助开发人员理解和使用项目源码。 我们的小程序项目源码还采用了一些常用的技术和工具,以提高开发效率和代码质量。例如,我们使用了微信小程序开发框架,它提供了一系列的API和组件,使得开发人员可以快速构建小程序应用。我们还使用了Vue.js作为前端开发框架,它提供了一种简洁而灵活的方式来构建交互式界面。 此外,我们的小程序项目源码还注重用户体验和界面设计。我们提供了一系列的界面模板和样式库,使得开发人员可以轻松创建漂亮而用户友好的小程序界面。我们还提供了一些常用的交互组件和动画效果,以增加小程序的交互性和吸引力。 总之,我们的小程序项目源码旨在帮助开发人员快速构建各种类型的小程序应用。无论是电商、社交、教育还是娱乐,我们相信我们的项目源码将能够提供强大的支持和帮助。感谢您对我们项目的关注和支持!
资源推荐
资源详情
资源评论
收起资源包目录
游戏-你画我猜.zip (241个子文件)
vcode.jpg 3KB
realtime.weapp.min.js 233KB
av-weapp-min.js 139KB
tunnel.js 15KB
index.js 14KB
index.js 10KB
index.js 6KB
index.js 6KB
chat.js 5KB
login.js 5KB
index.js 4KB
request.js 4KB
input.js 3KB
index.js 3KB
index.js 2KB
base64.js 2KB
index.js 1KB
index.js 1KB
index.js 1KB
dialog.js 977B
uploader.js 889B
wxTunnel.js 733B
navbar.js 697B
constants.js 664B
index.js 614B
config.js 579B
picker.js 559B
progress.js 555B
app.js 549B
searchbar.js 514B
index.js 446B
index.js 446B
index.js 446B
session.js 402B
utils.js 387B
toast.js 335B
actionsheet.js 268B
msg.js 211B
panel.js 187B
list.js 149B
grid.js 71B
preview.js 9B
badge.js 9B
footer.js 9B
button.js 9B
loadmore.js 9B
gallery.js 9B
icons.js 9B
article.js 9B
flex.js 9B
msg_fail.js 9B
msg_success.js 9B
slider.js 9B
tabbar.js 9B
app.json 2KB
.bower.json 875B
bower.json 527B
bower.json 427B
package.json 310B
index.json 266B
index.json 65B
jsconfig.json 55B
index.json 43B
index.json 37B
chat.json 2B
index.json 2B
index.json 2B
progress.json 2B
index.json 2B
index.json 2B
index.json 2B
preview.json 2B
actionsheet.json 2B
navbar.json 2B
list.json 2B
dialog.json 2B
input.json 2B
toast.json 2B
footer.json 2B
badge.json 2B
loadmore.json 2B
picker.json 2B
button.json 2B
searchbar.json 2B
icons.json 2B
panel.json 2B
gallery.json 2B
grid.json 2B
article.json 2B
flex.json 2B
msg_success.json 2B
msg_fail.json 2B
index.json 2B
msg.json 2B
slider.json 2B
index.json 2B
tabbar.json 2B
index.json 2B
uploader.json 2B
index.json 2B
共 241 条
- 1
- 2
- 3
资源评论
Java码库
- 粉丝: 1568
- 资源: 3921
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功