微信小程序常见问题(三)
知晓程序员,专注微信小程序开发的程序员!
一、获取formId
相信使用过小程序的同学,多少都收到过小程序的通过消息,如下:
这类通知消息,是和好友消息一样展示在微信的聊天列表中,所以,点击率还是比较高的。想实现这种小程序的模板消息,就必须要获取用户的formid才可以(如何发消息,请仔细查阅小程序官方文档https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html)
我们来说一下如何获取formId:
a、必须通过form组件提交才能获取到formId;
b、给form组件设置report-submit="true"属性;
c、给form组件添加bindsubmit事件绑定,携带 form 中的数据触发 submit 事件,event.detail = {value : {'name': 'value'} , formId: ''};
d、必须用户手动触发提交表单,不能JS模拟提交,所以,页面上必须要有提交按钮;
看一下示例代码:
<form report-submit='true' bindsubmit='userSubmit'>
<button class='button' bindtap='copy'
form-type='submit'>复制</button>
</form>
以上示例就可以在userSubmit里获取到formId了:
userSubmit: function (e) {
console.log(e.detail.formId);
},
需要注意一点,开发工具里面是没办法查看到真实的formId的,会是这样一句提示"the formId is a mock one",提交给服务端就可以拿到了~
二、客服button样式
其实button样式没什么好说的,最近有几个同学在群内讨论,说是客服按钮太小,想改一下样式,没办法实现。
这里我提供个思路:先按设计稿实现界面,联系客服如果样式和官方给的不一样,那就用position: absolute,定位一个button到你想要的位置,透明度设置为0即可,同时给button设置属性open-type="contact"就ok了~
注:
1、这里要注意button的open-type属性是在基础库1.1.0开始支持的,自己要做一下兼容处理~
2、button也可以改成其他样式,有些同学为了获取formId,就把页面所有可点击区域都用button按钮来实现了~
三、区分转发的是群聊还是好友
这个其实就是场景值的判断,先看一张图:
上图可以看出,从好友聊天窗口和群聊窗口点击小程序卡片后,场景值是不一样的,分别是1007和1008,所以,我们可以在app的onLuanch或者onShow方法中去获取到scene值,这样就能知道用户是通过哪种方式进入小程序的~
四、小程序组件化开发
小程序官方提供的组件化文案,这里不细说,大家直接去github查看吧: https://github.com/Tencent/wepy
- 这或许是对小白最友好的python入门了吧——8,初识for语句
- Extjs 项目中常用的小技巧,也许你用得着(3)
- 对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化
- 数据库与图片完美解决方案
- 数据库进程间通信解决方案
- 【实践操作】在iPhone上创建你的第一个机器学习模型
- WP8微信5.3开始内测 支持Cortana语音 两微破冰了?
- 数据库进程间通信解决方案之MQ
- Extjs4.2 rest 与webapi数据交互----顺便请教了程序员的路该怎么走
- 这或许是对小白最友好的python入门了吧——7,组织列表
- 这或许是对小白最友好的python入门了吧——6,删除列表元素
- 集群开源软件赏:JGroups
- 看到他我一下子就悟了---委托
- 这或许是对小白最友好的python入门了吧——5,修改和添加列表元素
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 七夕限定,致程序员的专属浪漫
- 使用 Docker Multi-stage 高效构建镜像
- vue(typescript) 使用webpack-bundle-analyzer
- 2020年学习Python-爬取百度图片
- 自动化运维 | Ansible lookup
- 【TBase开源版测评】Hello, TBase
- linux定位问题常用命令
- 聊聊claudb的zset command
- 腾讯云语音识别v1签名算法详解
- MySQL案例:关于JSON的一个bug
- Confluence 如何查看页面树
- 聊聊claudb的pubsub command
- Nginx证书和Tomcat证书能相互转化吗,请看这里
- 你真的理解 Webpack?请回答下列问题
- docker浅入深出3