【实例简介】后台基于腾讯云提供的小程序解决方案,修改config.js中的host即可

【实例截图】

【核心代码】

/**

* @fileOverview 演示会话服务和 WebSocket 信道服务的使用方式

*/

// 引入 QCloud 小程序增强 SDK

var qcloud = require('../../vendor/qcloud-weapp-client-sdk/index');

// 引入配置

var config = require('../../config');

// 显示繁忙提示

var showBusy = text => wx.showToast({

title: text,

icon: 'loading',

duration: 10000

});

// 显示成功提示

var showSuccess = text => wx.showToast({

title: text,

icon: 'success'

});

// 显示失败提示

var showModel = (title, content) => {

wx.hideToast();

wx.showModal({

title,

content: JSON.stringify(content),

showCancel: false

});

};

/**

* 使用 Page 初始化页面,具体可参考微信公众平台上的文档

*/

Page({

/**

* 初始数据,我们把服务地址显示在页面上

*/

data: {

loginUrl: config.service.loginUrl,

requestUrl: config.service.requestUrl,

tunnelUrl: config.service.tunnelUrl,

tunnelStatus: 'closed',

tunnelStatusText: {

closed: '已关闭',

connecting: '正在连接...',

connected: '已连接'

}

},

/**

* 点击「登录」按钮,测试登录功能

*/

doLogin() {

showBusy('正在登录');

// 登录之前需要调用 qcloud.setLoginUrl() 设置登录地址,不过我们在 app.js 的入口里面已经调用过了,后面就不用再调用了

qcloud.login({

success(result) {

showSuccess('登录成功');

console.log('登录成功', result);

},

fail(error) {

showModel('登录失败', error);

console.log('登录失败', error);

}

});

},

/**

* 点击「清除会话」按钮

*/

clearSession() {

// 清除保存在 storage 的会话信息

qcloud.clearSession();

showSuccess('会话已清除');

},

/**

* 点击「请求」按钮,测试带会话请求的功能

*/

doRequest() {

showBusy('正在请求');

// qcloud.request() 方法和 wx.request() 方法使用是一致的,不过如果用户已经登录的情况下,会把用户的会话信息带给服务器,服务器可以跟踪用户

qcloud.request({

// 要请求的地址

url: this.data.requestUrl,

// 请求之前是否登陆,如果该项指定为 true,会在请求之前进行登录

login: true,

success(result) {

showSuccess('请求成功完成');

console.log('request success', result);

},

fail(error) {

showModel('请求失败', error);

console.log('request fail', error);

},

complete() {

console.log('request complete');

}

});

},

switchTunnel(e) {

const turnedOn = e.detail.value;

if (turnedOn && this.data.tunnelStatus == 'closed') {

this.openTunnel();

} else if (!turnedOn && this.data.tunnelStatus == 'connected') {

this.closeTunnel();

}

},

/**

* 点击「打开信道」,测试 WebSocket 信道服务

*/

openTunnel() {

// 创建信道,需要给定后台服务地址

var tunnel = this.tunnel = new qcloud.Tunnel(this.data.tunnelUrl);

// 监听信道内置消息,包括 connect/close/reconnecting/reconnect/error

tunnel.on('connect', () => {

console.log('WebSocket 信道已连接');

this.setData({ tunnelStatus: 'connected' });

});

tunnel.on('close', () => {

console.log('WebSocket 信道已断开');

this.setData({ tunnelStatus: 'closed' });

});

tunnel.on('reconnecting', () => {

console.log('WebSocket 信道正在重连...')

showBusy('正在重连');

});

tunnel.on('reconnect', () => {

console.log('WebSocket 信道重连成功')

showSuccess('重连成功');

});

tunnel.on('error', error => {

showModel('信道发生错误', error);

console.error('信道发生错误:', error);

});

// 监听自定义消息(服务器进行推送)

tunnel.on('speak', speak => {

showModel('信道消息', speak);

console.log('收到说话消息:', speak);

});

// 打开信道

tunnel.open();

this.setData({ tunnelStatus: 'connecting' });

},

/**

* 点击「发送消息」按钮,测试使用信道发送消息

*/

sendMessage() {

// 使用 tunnel.isActive() 来检测当前信道是否处于可用状态

if (this.tunnel && this.tunnel.isActive()) {

// 使用信道给服务器推送「speak」消息

this.tunnel.emit('speak', {

'word': 'I say something at ' new Date(),

});

}

},

/**

* 点击「测试重连」按钮,测试重连

* 也可以断开网络一段时间之后再连接,测试重连能力

*/

testReconnect() {

// 不通过 SDK 关闭连接,而是直接用微信断开来模拟连接断开的情况下,考察 SDK 自动重连的能力

wx.closeSocket();

},

/**

* 点击「关闭信道」按钮,关闭已经打开的信道

*/

closeTunnel() {

if (this.tunnel) {

this.tunnel.close();

}

this.setData({ tunnelStatus: 'closed' });

},

/**

* 点击「聊天室」按钮,跳转到聊天室综合 Demo 的页面

*/

openChat() {

// 微信只允许一个信道再运行,聊天室使用信道前,我们先把当前的关闭

this.closeTunnel();

wx.navigateTo({ url: '../chat/chat' });

},

openDrawguess() {

this.closeTunnel();

wx.navigateTo({ url: '../drawguess/index' });

},

openUpload() {

wx.navigateTo({ url: '../upload/index' });

}

});

微信php页面你画我猜,微信小程序你画我猜相关推荐

  1. 实现微信扫一扫跳转到小程序指定页面

    使用微信扫一扫进入小程序内的指定页面 文章目录 使用微信扫一扫进入小程序内的指定页面 前言 一.微信小程序平台配置 二.前端uniapp中的获取二维码信息 三.后端处理参数 总结 前言 使用场景:例如 ...

  2. 微信小程序Canvs画数据表格 折线图

    微信小程序Canvs画数据表格 应设计要求,需要画个图标来显示用户历史数据的变化,所以就写了个方法,方便自己以后用的时候调用 废话不多说,先上效果图 现在.wxml文件中加入canvas 标签 给他一 ...

  3. 微信公众号可快速创建“门店小程序” 不用开发

    "门店小程序"是啥?"门店小程序"是小程序的一项新能力.无需开发,商户就可在微信公众号后台快速创建"门店小程序".这个小程序类似一张&quo ...

  4. 快手小店电脑版_微信PC版更新!支持在小程序中使用微信支付 | 一周资讯

    小程序1. 微信PC版更新,支持在小程序中使用微信支付.12月19日,微信PC端推出内测版2.7.2.73,新版本支持以下新功能:新增看一看精选内容,新的订阅号浏览体验,支持在小程序中使用微信支付.( ...

  5. 程序左上角的字_微信内测7.0.7新版本,小程序迎来大改动!

    最近几个月来,微信就跟打了鸡血一样不断更新了多个版本上线多个新功能.此前7月末,微信安卓7.0.6带来了将收藏笔记,文件预览等页面设为浮窗的功能,目前最多支持5个文档或笔记设为浮窗.这不,距离微信7. ...

  6. 微信扫描普通二维码进入小程序

    微信扫描普通二维码进入小程序的方法,和代码没有什么关系,主要是在小程序平台进行设置 1. 开发配置 开发 -- 开发管理 -- 开发设置 -- 扫普通链接二维码打开小程序 2. 配置规则 根据说明配置 ...

  7. 微信小程序(微信开发者工具及工程创建、小程序配置、逻辑层、模块化)

    一.阶段概述 1.课程安排 课程市场:14+1 课程安排:微信小程序:5uniapp:5数据可视化:4答辩:1 2.项目展示 小u商城 数据可视化 3.阶段目标 1.培养学员能力独立完成小程序原生开发 ...

  8. 微信公众号计算机编程,微信公众号群发文章怎么添加小程序?-电脑教程

    2017年4月20日微信发布公告称,微信公众平号群发文章支持添加小程序功能,这对于推广小程序来说,无疑是不错的途径.那么微信公众号群发文章怎么添加小程序?以下是华强电子网带来的详细教程. 微信公众号群 ...

  9. 微信公众号发送小程序卡片_微信公众号群发文章支持添加小程序卡片

    2017年4月20日微信发布公告称,微信公众平号群发文章支持添加小程序功能,这对于推广小程序来说,无疑是不错的途径.那么微信公众号群发文章怎么添加小程序?下面爱站技术频道的小编带来的详细教程. 微信公 ...

  10. 微信公众号自定义菜单栏绑定关联小程序

    日期:2020/7/2 10:02 原文链接: http://note.youdao.com/noteshare?id=a5b5529c7bb1f385fa5453d2a338dbd1&sub ...

最新文章

  1. 【ACM】杭电OJ 2050
  2. web 监听器 过滤器等组件
  3. python中所有保留字首字母都是小写_int是不是python的保留字
  4. STL源码剖析---STL容器特征总结(含迭代器失效)
  5. java 生成 tar.gz_一文教您如何通过 Java 压缩文件,打包一个 tar.gz Filebeat 采集器包...
  6. zookeeper启动失败的排错 no route to host 防火墙未关闭导致的
  7. ORACLE专有模式与共享模式
  8. [LeetCode] Intersection of Two Arrays 两个数组相交
  9. NUC1041 数字三角形【DP】
  10. oracle 扩容undo,某银行积分系统数据库RAC环境扩充undo表空间
  11. jquery砸金蛋 高仿阿里旅游砸金蛋
  12. 使用Tortoise小乌龟 git 拉取代码 报错128处理
  13. 小白如何入门计算机编程?
  14. Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。
  15. Zookeeper 客户端之 Curator
  16. JavaWeb程序设计———名片管理系统
  17. 网址URL转义,特殊字符编码HTTP URL编码表
  18. FI和HR集成自动记账-薪酬计提与发放过账-OBYE/OBYG/PE03/OH02
  19. 详解!千牛快捷短语在哪里设置
  20. 界面组件Telerik UI for WPF全新的Windows 11主题,一起来探索

热门文章

  1. python猴子吃桃问题_用Python解决猴子吃桃问题
  2. 【观察】星环科技重构数据云平台,持续释放数据红利和价值
  3. 什么原因导致了儿童自闭症?跟父母养育有关吗?
  4. 四川省乐山市谷歌高清卫星地图下载
  5. 吞吐量、带宽、bps、pps、转发能力、线速转发、交换带宽
  6. 江苏省电子税务局中文点选验证码识别研究
  7. 【译】Inside SafetyNet - part 3
  8. Python Class 05-字符串
  9. Altium Designer19(AD19)
  10. 【英雄九日集训】(七月第一轮)第一天——数组