- 「笔记」订阅消息-订阅次数维护
前言 距离1月10日模板消息下架只有2天了,在社区里经常能看到有帖子在问关于怎么记录订阅次数的问题,这里在这里介绍一下自己用的简单方案,仅供参考。 误区一 [图片] 上面这个图大家应该都比较熟悉了,很多人总是误以为勾选“总是保持以上选择,不再询问”,就可以无限发送订阅消息,这个是错误的想法,勾选和不勾选唯一的区别就是每次触发订阅的时候会不会弹授权窗口而已。 误区二 订阅消息不能通过bindsubmit的方式触发,必须通过bindtap的方式触发。 误区三 触发订阅窗口后,不管用户点击了允许还是取消,都会进入订阅消息的success回调中,所以通过这个来判断用户是否订阅是错误的。 订阅次数的维护 先看下官方的文档: [图片] 那么我们该如何使用呢? 我们通过 wx.requestSubscribeMessage 接口发送的时候是知道需要让用户订阅哪几个模板的,就是 tmplIds 这个参数填的数组。那么根据官方文档的回调内容,我们就可以直接在success内去获取对应的key所返回的状态。把获取到的状态分别存入自己的数据库里。发送的时候去数据库里查询需要发送的模板并且状态为accept的去发送,如果发送成功则删除一条记录(因为没有过期一说,所以随便删除哪一条记录都不影响)。 参考代码 [图片] 查询模板订阅状态 需要基础库大等于2.10.0才支持。 wx.getSetting({ withSubscriptions: true, success (res) { console.log(res) } }) 官方文档 补充 如果用户选择了不再接收消息会清空之前的订阅次数,但是这个不会主动告诉开发者,所以发送订阅消息失败后,需要根据返回内容自行清空记录,重新计算。 相关文章 「笔记」订阅消息-订阅次数维护(2020年3月更新改动) 「笔记」订阅消息体验踩坑
2020-03-06 - 如何接入腾讯地图导航
这几天在学校跟几个同学一起开发了一款校园小程序,里面提供:二手交易、维修上报、信息发布、失物招领等服务,目前该小程序已在学校推广试运营。 在维修上报这里有个地址导航的服务,现总结如何接入 具体参考官方文档如下 (13)腾讯地图插件? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/000c205a840db8786ee66de2556409 文档地址: https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx50b5593e81dd937a&token=2083178782&lang=zh_CN https://docs.qq.com/doc/DSEFseFRUekFBRFds 1.在“小程序管理后台-设置-第三方服务-插件管理”中查找插件名称“腾讯地图”,并申请使用。 [图片] 2 [图片] 3 [图片] 4 第二步:代码编写 [图片] [图片] 5 小程序相关截图 1 [图片] 2 [图片] 3
2020-05-28 - 请问企业微信能够通过接口获取到外部联系人发来的信息然后在返回信息回去么?
这个文档中的接口能够返回给外部联系人信息么 https://work.weixin.qq.com/api/doc/90000/90135/90241
2020-05-08 - 微信小程序踩坑*2
注意,安卓手机很有可能只有两种字体粗细,我拿我几个同事的手机测试过了,发现安卓手机似乎只有两种字体粗细(可能数字不一样),而苹果较为细致,有多种字体粗细程度[图片][图片][图片][图片] 第一张是ios,其他都是安卓,除了最后一个安卓数字不一样,其他都是两种粗细,最后一行打错字了,应该是lighter
2020-03-26 - 大招,大招,如何生成任意小程序的小程序码
我在前几天写过一篇文章介绍,如何生成小程序固定page的小程序码,具体链接如下 https://developers.weixin.qq.com/community/develop/article/doc/00048203e446b00b441a171a351813 当时以为仅仅可以生成自己小程序的小程序码,其实是没有这个限制的 前提条件 您已经注册了一个微信小程序,或者你可以登录别人小程序后台 ❤️ 下面我以京东小程序,京喜为例来生成京喜小程序的小程序码 第一步,登录小程序后台,点击右上角的工具 [图片] 占位 第二步,输入要生成小程序码的小程序名称,比如这里输入京喜 [图片] [图片] [图片] [图片] 第三步 在手机微信搜索京喜小程序,并进入我的页面 [图片] 占位 [图片] 内 点击右下角复制链接,这个时候就提取到京喜小程序我的页面的链接,然后返回小程序后台,输入 [图片] 占位 输入京喜小程序我的页面的链接,这个时候就可以生成京喜小程序我的页面的小程序码,扫码便可以直接进入 [图片] 占 [图片] 位 这个时候就可以去京喜小程序提取固定某个页面的链接,从而生成当前page的小程序码了。
2020-03-23 - 基于云开发的垃圾分类小程序
基于云开发的垃圾分类小程序 开源的垃圾分类小程序 在2019年7月份的时候做过一个自建服务器的垃圾分类小程序,后来由于流量不好,就换掉下线了,最近正好有空,把自建服务器的垃圾分类小程序改成云开发的模式 基于自建服务器的垃圾分类小程序请移步 https://zhuanlan.zhihu.com/p/73508491 目前已经实现的功能有: 1、垃圾分类文章科普 2、垃圾分类查询 3、垃圾分类测试,支持单选和多选 4、 [图片] [图片] [图片] [图片] [图片][图片] [图片] [图片] 1 2 基于云开发的垃圾分类小程序代码地址 https://gitee.com/xiaofeiyang3369/fenlei 数据库 [图片] 一共8个集合 [图片] 备注: 该项目可以用来做为云开发初学者的一个入门练手项目,整体逻辑非常简单,云开发数据库、云存储、云函数都有用到,希望对您有用。
2020-06-08 - 小程序模板消息能力调整通知
小程序模板消息能力在帮助小程序实现服务闭环的同时,也存在一些问题,如: 1. 部分开发者在用户无预期或未进行服务的情况下发送与用户无关的消息,对用户产生了骚扰; 2. 模板消息需在用户访问小程序后的 7 天内下发,不能满足部分业务的时间要求。 为提升小程序模板消息能力的使用体验,我们对模板消息的下发条件进行了调整,由用户自主订阅所需消息。 一次性订阅消息 一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 [图片] (一次性订阅示例) 长期性订阅消息 一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。 调整计划 小程序订阅消息接口上线后,原先的模板消息接口将停止使用,详情如下: 1. 开发者可登录小程序管理后台开启订阅消息功能,接口开发可参考文档:《小程序订阅消息》 2. 开发者使用订阅消息能力时,需遵循运营规范,不可用奖励或其它形式强制用户订阅,不可下发与用户预期不符或违反国家法律法规的内容。具体可参考文档:《小程序订阅消息接口运营规范》 3. 原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法使用此接口发送模板消息,请各位开发者注意及时调整接口。 微信团队 2019.10.12
2019-10-13 - 7个工作日内未审核的请不要催审了,靠自己吧!
最近社区里关于审核的帖子很多,不能愉快的在社区划水了。 很多人在社区发帖各种急,有活动要上线的,有严重BUG要修复的,有客户催的,有老板提着大刀在后面等着等等的理由,但是这些理由官方几乎是直接忽略的,不要指望审核人员能为你做什么。 社区能看到不少几个小时未审核就发帖催的,只有真正超过7个工作日未审核的小程序官方才会处理,否则普通的催审帖子发的越多不仅不会加快审核效率,可能还会降低审核的速度。与其浪费时间发无意义的帖子,还不如利用官方提供的资源和奖励去争取真正的极速审核资格,如果自己没有能力满足极速审核的条件,请耐心等待正常审核。 审核周期 普通小程序: 工作时间:1-7个工作日(无特殊情况都能在这期间审核完成)。 极速审核: 工作时间:周一到周五,9点-21点;周六周日,9点-19点。 第三方服务商预上线请参考官方公告:《第三方服务商quota调整与加急审核机制上线》 PS:审核未通过时候尽量不要撤回重新提交,否则重新排队。 极速审核 【推荐】小程序评测 小程序评测,旨在鼓励开发者将小程序做的更好,提供更优质的服务、更优秀的用户体验。通过运营、性能、用户指标综合评估小程序的数据情况,并经由人工审核评估小程序的功能体验情况,最终得出综合评定,并给予达标的小程序诸如加速审核,内测能力的奖励。 根据上个月最后一天的运营、性能、用户指标情况判断是否进行服务审核评定,每月初更新审核结果。小程序进入服务审核的前提是,运营指标为达标,性能指标为优秀,用户指标为优秀;反之,则当月不进行服务审核。 《小程序评测服务审核细则》 社区突出贡献者激励计划 小程序极速审核通道,开发者参与开发的小程序将可享受一个月快速审核的奖励。 时间:每个自然月的贡献统计,下个月将清零重新计算。 《社区突出贡献者激励计划》 催审官方回复截图(仅供参考) [图片] [图片] [图片]
2019-09-12 - 针对新手很容易出现理解误区的微信小程序订阅消息模块
1. 写在前面 微信小程序下架了模板消息功能,取而代之的是订阅消息功能。这个订阅消息目前又分为「一次性订阅」和「永久订阅」。使用订阅消息也有一段时间了,感觉对新手订阅消息很容易让新开发者进入一个理解的误区,这里觉得有必要说出来 2. 理解误区 很多新手认为,只要用户勾选了小程序端订阅消息弹出时底部的「总是保持以上选择…」后,就可以「为所欲为」的不限次数的推送订阅消息给用户了。如下图: [图片] 3. 正确理解 如果你使用的「一次性订阅」模板(目前发现绝大多数开发者都是只能用一次性的,因为永久性的订阅消息申请门槛太高),那么勾选底部的「总是…」这个并不代表以后可以直接推送了。官方原话wx.requestSubscribeMessage的介绍里是这样写的: 3.1 官方说明 wx.requestSubscribeMessage(Object object) 基础库 2.8.2 开始支持,低版本需做兼容处理。 调起客户端小程序订阅消息界面,返回用户订阅消息的操作结果。当用户勾选了订阅面板中的“总是保持以上选择,不再询问”时,模板消息会被添加到用户的小程序设置页,通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态。 注意事项 一次性模板 id 和永久模板 id 不可同时使用。 低版本基础库2.4.4~2.8.3 已支持订阅消息接口调用,仅支持传入一个一次性 tmplId / 永久 tmplId。 2.8.2 版本开始,用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。 2.10.0 版本开始,开发版和体验版小程序将禁止使用模板消息 fomrId。 3.2 重点关注 这里重点关注第7条:「用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。」这就意味着你需要在用户主动点击某个组件是触发调用wx.requestSubscribeMessage方法再次订阅,订阅后,你才可以「为所欲为」推送一次模板消息,注意只能一次。下次再想推送时,需要用户再次点击触发wx.requestSubscribeMessage。 4. 破局方案 目前订阅消息功能,就是这么个情况,所以针对这个情况的替代方案有以下 4.1 永久性订阅消息 如果能达到申请「永久性订阅」消息的模板的门槛,那自然是极好的,直接用永久性模板「为所欲为」。 4.2 使用服务号的模板消息替代 比较常用的是使用公众号服务号的模板消息代替小程序的订阅消息功能,公众号的模板消息功能限制就比订阅号好多了,基本上可以「为所欲为」的推送。但是这个方案有个致命的运营成本:必须要用户关注公众号,还有小程序要跟公众号同一主体并绑定在开放平台下。同时开发成本有所增加,要采用unionId机制来打通小程序跟公众号的openId。这个具体的实现方案,大家有兴趣的话可以讨论下。笔者目前就是用这种方案的。 5. 几个注意点 5.1 官方提示 订阅消息如果选择选择‘总是保持以上选择,"不再询问"后的设置问题: 目前是选择‘总是保持以上选择,"不再询问"后,可以在设置中开启或拒绝接收,但不会再次拉起授权弹窗 6. 长期性订阅消息 请参考官方最新文档: 小程序模板消息能力调整通知 | 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/00008a8a7d8310b6bf4975b635a401 长期性订阅消息 一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。 7.题外话 鉴于被戴上各种「刷赞,冲级,让社区点赞“通货膨胀”」等等一些恶毒字眼(最近多了个职业回复的「雅称」),各种帽子戴得,做一个开发爱好者积极分享和解决各种问题太难了,姑且不论咱写一篇文章需要截图多少,单单排版就得废掉俺多少时间哈,很受伤,所以本人决定在微信开放者社区封笔。你看到是俺最后一篇发表在微信开放社区的文章。如果你想继续查看俺的一些文章可以私聊我。我会在其他平台保持继续创作。bye-bye~ 8. 最最重要的来了 看完后觉得有用记得点赞~~ ↓点赞处↓
2020-09-04 - 微信小程序订阅消息汇总,持续跟进中
最近在搞微信小程序订阅消息,遇到不少的坑,这篇文章的初衷就是帮忙开发者少踩坑,业务能快速对接订阅消息。 也欢迎开发者私聊我,咱们一起维护这个列表。 下面有部分内容是从@拾忆和@Jianbo摘取的,如有侵权,联系我,我来删除。 官方文档 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html 订阅消息体验踩坑@拾忆 https://developers.weixin.qq.com/community/develop/article/doc/000e22321b8ef0b9bc491ae9c53c13 小程序订阅消息开发指南@Jianbo https://developers.weixin.qq.com/community/develop/article/doc/00026407d58cf07bb96941b0e5b813 开发者需要关注的点 1.如果不勾选红色方框内的内容,用户每次触发订阅消息功能都会弹出授权窗口,如果用户勾选了则不会出现弹窗。 2.微信不会为开发者保存订阅次数,需要自己在后台记录用户触发的次数。超过次数调用接口下发订阅消息会返回失败。 3.发送模板格式和原来的模板消息格式不一致,特别是data内的内容,订阅消息的字段key是和数据类型有关,value的参数需要严格按照设置的类型提交,具体使用参考后台的模板详情。 4.长期订阅消息只针对特定行业开放,所以普通开发者并无法使用。 5.用户是否勾选总是保持以上选择,不再询问,这个对开发者透明 6.测试环境如果勾选总是保持以上选择,就不会在弹出来,如果进入设置页关闭,也不会弹出来。有一个骚操作,就是去后台将订阅消息模板删除,重新新建一个,就会生成一个新的模板id,就能进行测试了 7.允许和拒绝的回调返回errMsg是一样的 低版本说明 1.基础库2.8.2 版本才开始支持,用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。 2.微信版本:一次调用最多可订阅3条消息(注意:iOS客户端7.0.6版本、Android客户端7.0.7版本之后的一次性订阅/长期订阅才支持多个模板消息,iOS客户端7.0.5版本、Android客户端7.0.6版本之前的一次订阅只支持一个模板消息)消息模板id在[微信公众平台(mp.weixin.qq.com)-功能-订阅消息]中配置 使用的两种方式 1.点击行为,不能嵌套在form组件 2.支付回调,可以wx.requestPayment回调里使用 可参考的产品 1.luckin微信小程序,在支付之前体验 2.青柠单车小程序,扫码就能体验 bug 错误码 1.43101用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系 changeLog 1.2019-12-31 20:00:目前订阅消息不支持跳开发版,我们会尽快优化解决 2.2020-01-02 12:55:微信开放平台,向非api方式注册的小程序添加订阅消息,小程序类目不符合订阅消息类目,添加不了,需要手动到微信后台设置类目 3.2020-01-02 19:00 新版订阅消息IOS手机bug,直接返回之后就不会在弹窗了,微信7.0.9版本已解决https://developers.weixin.qq.com/community/develop/doc/00008a645500e88023b9341fc51c 4.2020-01-06 15:00 小程序订阅消息弹出样式是系统默认的,目前开发者不允许修改 5.2020-01-071510 小程序订阅消息的相关接口频次上限是多少(当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。https://developers.weixin.qq.com/community/develop/doc/00084455e7c068058ab9db8d656800 6.2020-01-08 11:30 微信支付成功从A页面进入B页面,微信版本 7.0.8,页面切换时,订阅消息弹窗不显示了。微信版本7.0.9没有这个问题;后续会修复
2020-02-16 - 「笔记」订阅消息体验踩坑
前言 10月12日夜晚社区发了公告小程序模板消息能力调整通知,正式发布了 一次性订阅消息 这一能力,所以第一时间进行了体验。 本文主要是补充一下官方未提供的使用方法,和使用中与模板消息用法的不同。 文档地址 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html 使用方法 [代码]wx.requestSubscribeMessage({ tmplIds: ["模板id1","模板id2"], success: function (res) { //成功 }, fail(err) { //失败 console.error(err); } }) [代码] 第一个坑 如果不勾选红色方框内的内容,用户每次触发订阅消息功能都会弹出授权窗口,如果用户勾选了则不会出现弹窗。 [图片] 第二个坑 目前开发者工具(v1.02.191012)不支持调试,只能通过真机调试。 [图片] 第三个坑 微信不会为开发者保存订阅次数,需要自己在后台记录用户触发的次数。 超过次数调用接口下发订阅消息会返回失败。 [图片] 第四个坑 发送模板格式和原来的模板消息格式不一致,特别是data内的内容,订阅消息的字段key是和数据类型有关,value的参数需要严格按照设置的类型提交,具体使用参考后台的模板详情。 模板消息的格式: [代码]"data": { "keyword1": { "value": "内容", "color": "#000" }, "keyword2": { "value": "内容", "color": "#000" } } [代码] 订阅消息的格式: [代码]"data": { "thing1": { "value": "内容" }, "number2": { "value": 20 } [代码] 第五个坑 订阅消息申请模板的时候,需要选择所属类目,而且只能是自己小程序相关类目,模板消息是不需要选择对应类目的。 如果删除小程序类目,则会把订阅消息模板一起删除,需谨慎操作。 [图片] 第六个坑 长期订阅消息只针对特定行业开放,所以普通开发者并无法使用。 结束 暂时就先总结这些,有其它坑再补充。
2019-10-13 - 自定义客服 消息卡片
小程序如何合理合规引导用户关注公众号或者添加客服微信点击客服,出现"你可能发送的图片"或者"你可能发送的小程序" 在之前的文章中我写过,如果通过小程序合理合规引导用户关注公众号,具体见下文 https://developers.weixin.qq.com/community/develop/article/doc/000208cb3fc438638ae9fd6d451013 其中提到一种方式就是客服消息, 自定义卡片消息交互设计示例 具体示例图如下所示: 以下截图来自小程序抽奖助手 [图片] [图片] [图片] [图片] 自定义卡片消息代码片段 https://developers.weixin.qq.com/miniprogram/dev/component/button.html 该技术是自定义客服卡片,具体代码可以参考 欢迎使用代码片段,可在控制台查看代码片段的说明和文档 联系客服 https://developers.weixin.qq.com/s/NHTz9tml76c3 [图片]
2020-03-14 - 小程序中如何引导用户关注公众号
需求场景 最近模板消息下线,我们计划将小程序用户转化到小程序同主体公众号,通过公众号的模板消息来推送消息,这个时候面临一个问题,如何将用户转化到公众号上来 解决方案 小程序本身是提供关注公众号组件的,具体文档链接如下: https://developers.weixin.qq.com/miniprogram/dev/component/official-account.html 但是这个使用是有要求场景的,我把文字贴一下: 在一个小程序的生命周期内,只有从以下场景进入小程序,才具有展示引导关注公众号组件的能力: 当小程序从扫小程序码场景(场景值1047,场景值1124)打开时 当小程序从聊天顶部场景(场景值1089)中的「最近使用」内打开时,若小程序之前未被销毁,则该组件保持上一次打开小程序时的状态 当从其他小程序返回小程序(场景值1038)时,若小程序之前未被销毁,则该组件保持上一次打开小程序时的状态 相关链接 有谁的小程序放过引导关注公众号组件的?可以发个小程序码体验下吗? https://developers.weixin.qq.com/community/develop/doc/000ec032328430801ac96ae085bc00 小程序中使用关注公众号组件问题 https://developers.weixin.qq.com/community/develop/doc/00006ae0380b401951f85703a51400 使用关注公众号组件(official-account)报错:关联关系解除或未选中关联公众号官 https://developers.weixin.qq.com/community/develop/doc/0002eed8b6cec80654291b27651009 可行性总结 总的来说,通过公众号组件是可以满足目前需求的。
2020-01-14 - 小程序公众号文章自动跳转关注公众号页面?
[视频] 通过webview进入直接进到公众号文章 直接跳转到关注文章页面
2020-02-26 - “签到”功能,不是你想象的那么简单
签到功能的存在,不仅能够提高用户活跃,还能够刺激用户完成指定行为。签到的同时伴随的荣誉感、仪式感等精神奖励。 [图片] 如果通过签到可赚取积分、经验值以及兑换奖品,达到激励用户的目的,那么它还有个更高级的名字:游戏化思维。 发现在小程序里以「签到」为基础的游戏化思维策略,已经成为开发者的基本打法。 1、如果你是高频小程序,要做签到,这会进一步提高用户粘性; 2、如果你是低频小程序,更要做签到,这是低频变高频的快速通道。 小程序里的签到到底怎么玩? 放长线钓大鱼 在很多人看来,签到或许只是提高用户留存率的方法,其实签到并不仅限于留存,还有拉新促活。 用优质商品吸引用户签到,每次签到可得积分,积分可换购商品,如果用户想获得更多积分,只能多做任务 这样一来,用签到,便完成了引导用户闭环营销。 免费送“钱”,你要不要? 用户在平台里每天签到1次,都能获得积分 用户拿着积分,唯一能做的事,就是尽情的兑换商品,无需考虑“省钱”,反正除了小程序以外,积分在其他地方也毫无用武之地。 而通过连续的签到行为逐渐增加用户的获利程度,刺激用户养成连续签到习惯。 不提留存的签到,都是耍流氓 虽然有些人说签到不仅是为了留存,但用这一玩法真正受益的还是小程序的留存率。 促进内容生产 签到导致产生内容,可以进一步活跃用户,带动整个社群的气氛,让用户在这个圈子里产生互动。这是留存的力量。 就连最近非常流行的步数类小程序,也离不开签到所带来的“回头率”。 [图片] 签到对于小程序本身,也是一种具有仪式感的功能,如果你使用得当,一定能为你的小程序锦上添花。
2020-02-21 - 地址选择解决方案 [即抄即用,拎包入住]
操作:ctrl c + ctrl v 资源:所需的JS和图片资源在云盘 (提取码:o4mk)里,直接粘贴在demo2文件夹就可以了 思路:选择自己附近的地址或搜索想要的地址 欢迎热烈交流啊哈哈哈23333,经常在线的 ps. 记得申请个腾讯地图qqmap key啊 os. 代码有点小多,ctrl c + ctrl v要勤快点 [图片] demo [代码]<view bindtap="jump"> <view wx:if='{{!address}}'>请选择地址(必选)</view> <view wx:else>{{address}}</view> </view> ------------------------------------------------------ jump(){ wx.navigateTo({ url: '/pages/demo2/demo2', }) } [代码] demo2 [代码]<view class="searchCtr"> <view class="searchIcon"> <icon type='search' /> </view> <input bindinput="getAdr" placeholder='请输入地址' placeholder-class="searchPH" class="search" /> </view> <map class="map" longitude="{{longitude}}" latitude="{{latitude}}" markers="{{markers}}" hidden='{{keyword}}' /> <view class="adrTxtBox" style="margin-top:{{keyword?100:650}}rpx"> <view wx:for="{{adrList}}" wx:key="index"> <view bindtap="adrConfirm" data-index="{{index}}" class="adrBox"> <view class="imgNtitle"> <image src="minilandmark.png" class="minilandmark" /> <view class="title">{{item.title}}</view> </view> <view class="adrDetail">{{item.address}}</view> </view> </view> </view> ------------------------------------------------------------------------------------------ var QQMapWX = require('/qqmap-wx-jssdk.js') var qqmapsdk; Page({ onLoad() { var that = this qqmapsdk = new QQMapWX({ key: '你自己的qqMap key' }) wx.getLocation({ type: 'gcj02', success(res) { const lat = res.latitude const lon = res.longitude const markers = [{ latitude: lat, longitude: lon, iconPath: 'landmark.png', width: 40, height: 40, label: { content: '你现在位置', bgColor: '#ffffff', display: 'always', borderRadius: 3, borderWidth: 1, anchorY:-30, anchorX:15 } }] qqmapsdk.reverseGeocoder({ location: { latitude: lat, longitude: lon }, get_poi: 1, success(res) { var poiList = res.result.pois var adrList = [] for (var i in poiList) { adrList.push({ title: poiList[i].title, address: poiList[i].address, latitude: poiList[i].location.lat, longitude: poiList[i].location.lng }) } that.setData({ latitude: lat, longitude: lon, markers: markers, adrList: adrList }) } }) } }) }, getAdr(e) { var that = this; var keyword = e.detail.value this.setData({ keyword: keyword }) qqmapsdk.getSuggestion({ keyword: e.detail.value, success: function (res) { var poiList = res.data var adrList = []; for (var i = 0; i < res.data.length; i++) { adrList.push({ title: poiList[i].title, address: poiList[i].address, latitude: poiList[i].location.lat, longitude: poiList[i].location.lng }); } that.setData({ adrList: adrList }); } }); }, adrConfirm(e) { let pages = getCurrentPages() let prePage = pages[pages.length - 2] let index = e.currentTarget.dataset.index let adrList = this.data.adrList let address = adrList[index].title let latitude = adrList[index].latitude let longitude = adrList[index].longitude prePage.setData({ address: address, latitude: latitude, longitude: longitude }) wx.navigateBack({ delta: 1 }) } }) ------------------------------------------------------------------------------------------------ .searchCtr { position: fixed; display: flex; justify-content: center; align-items: center; top: 0; height: 100rpx; width: 100%; background-color: #fec22c; z-index: 1; } .searchIcon { display: flex; align-items: center; justify-content: center; background-color: white; width: 10%; height: 70rpx; border-radius: 60rpx 0 0 60rpx; } .search { background-color: white; width: 80%; height: 70rpx; border-radius: 0 60rpx 60rpx 0; } .searchPH { font-size: 27rpx; } .map { position: fixed; top: 100rpx; height: 550rpx; width: 100%; z-index: 1; } .adrTxtBox { width: 100%; } .adrBox { display: flex; flex-direction: column; justify-content: center; margin-left: 2.5%; height: 150rpx; width: 95%; border-bottom: 2rpx solid rgba(133, 133, 133, 0.2); } .imgNtitle { display: flex; flex-direction: row; align-items: center; height: 50rpx; } .minilandmark { width: 40rpx; height: 40rpx; } .title { margin-left: 20rpx; } .adrDetail { margin-top: 20rpx; margin-left: 60rpx; font-size: 24rpx; color: #666; } [代码]
2020-05-21 - 【笔记】小程序内部引导关注公众号的几种方式
今天早上起床看到群里有问到这个问题,才想起总结下这个需求 小程序内部引导关注公众号的4种方式 由于小程序某些功能存在诸多的限制,而公众号相对开放一些,所以一定会有把小程序用户引导关注公众号的需求,现记录如下 1、小程序关注组件,这个是官方已具有的,本文不做叙述,后面碰到示例截图补充 [图片] 该方式是有限制的,请具体了解官方文档 https://developers.weixin.qq.com/miniprogram/dev/component/official-account.html 公众号关注组件。当用户扫小程序码打开小程序时,开发者可在小程序内配置公众号关注组件,方便用户快捷关注公众号,可嵌套在原生组件内。 2、小程序内部嵌入公众号二维码图片,提示保存二维码图片到本地然后扫码关注,截图示例如下 3、通过文字描述,提示用户搜索公众号名字进而关注 [图片] 4、客服消息,这是本次笔记的重点 现通过小程序抽奖助手截图示例,下面截图仅仅代表方式3,客服消息方式 [图片] 占位 [图片] 占位 [图片] 占位 [图片] 占位 之前有朋友,通过app唤起小程序,然后再拉起客服消息发送公众号二维码,这种行为存在风险,建议慎用 ! [图片] 在APP报名课程后 拉起小程序,通过发送客服消息来引导关注公众号 之前:已明确提示用户是要关注公众号,不存在故意诱导行为。报名课程后让用户关注公众号,是为了提醒用户及时上课、提交作业等。 [图片]
2020-03-04