- URL Scheme新规则调整后,如何判定为独立用户?
若在微信外打开,用户可以在浏览器页面点击进入小程序。每个独立的链接被用户访问后,仅此用户可以再次访问并打开对应小程序,其他用户无法再次通过相同链接打开该小程序; 这里提到的独立用户, 是用什么标识用户的独立或者唯一性?
2022-04-14 - 小程序中各类二维码、小程序码,在各种场景下,长按识别支持情况验证结果
近期由于业务涉及到小程序长按识别加群、关注公众号等业务,各类场景下的支持情况,官方文档也没有特别具体的说明,所以整体做了一些测试。测试结果如下,如果有一些不准确或者未验证的情况,欢迎大家指正、补充哈~ 小程序中各类二维码、小程序码,在各种场景下,长按识别支持情况验证结果(验证时间:2021-10-21) [图片] 2022-6-8更新: image+shop long press、wx.previewImage 支持公众号二维码长按识别了~
2022-06-08 - 重磅!微信更新版本,小程序内支持长按识别二维码!
上周,微信更新了iOS 8.0.6版本和安卓 8.0.3版本,虽然更新日志没有说明任何改变,但其实隐藏着影响全行业的巨大能力!那就是:“小程序内居然支持长按识别二维码啦!”这个“小小”的更新,体现了两大重要能力: 第一点,小程序内可以直接扫码添加好友。 第二点,小程序支持生成URL链接,直接在微信外唤起。 比如我们在移动端浏览器打开网站,以及在短信内打开链接,都可以直接唤起小程序,将外部好友加进来。引流推广上又能解锁新的玩法了。 1.缩短引流路径,快速沉淀私域流量原先用户进入小程序页面,无法直接长按识别二维码添加。要想将小程序的用户引流到私域中,必须是这两种方式: ①用户进入小程序客服会话中发送小程序,用户收到二维码,才能识别添加员工; ②通过文字引导用户,将二维码截图保存下来,用微信识别图片来添加; 现在可以直接长按二维码添加员工了。 2.减少广告投放的获客成本做百度移动端投放时,以前我们无法直接让点进百度投放链接的用户,添加员工的企业微信。通常我们的做法是,引导用户填写表单,电销部门根据收集的手机号线索,再一一打电话引导,将客户添加到我们的企业微信进行转化。 现在用户进入投放落地页,点击咨询按钮,即可在百度中唤起小程序,客户长按识别二维码就能直接添加我们。 同样在做短信营销时,用户收到企业的短信通知,可以直接点链接进小程序,添加我们的企业微信。 运用此能力这样一来,大大简化用户的操作步骤,还减少操作过程中用户的流失,更有利于我们将用户沉淀到私域中,赶紧用起来!
2021-05-27 - 小程序中图片二维码、小程序码,长按识别支持的情况
因为看到最近还有人刷到这篇文章还有收藏的,所以特别说明一下: 以下是2021年5月31日时候测试的结果,并不一定与现在的情况相符。现在啥情况,我也不知道,已经不咋做小程序了。所以大家实际使用时候,请大家还是再测测。 上面这段话更新于2021年10月11日 下面是原文 ==================================================================================================================== 最近小程序中的图片支持长按识别了,总结一下几种情况下: 测试时间:2021-5-31 微信版本:8.0.6 当前时间最新 image标签 + show long press menu <image src="https://img.qr.com/qr.jpg" style="width: 100%;" mode="widthFix" show-menu-by-longpress="{{true}}"></image> ✅ 识别小程序码 - ✅ 跳转小程序 ✅ 识别群二维码 - ❌ 跳转到加群页面 ✅ 识别名片二维码 - ❌ 跳转到加好友页面 ❌ 识别小程序二维码 wx.previewImage ✅ 识别小程序码 - ✅ 跳转小程序 ✅ 识别群二维码 - ✅ 跳转到加群页面 ✅ 识别名片二维码 - ✅ 跳转到加好友页面 ❌ 识别小程序二维码 web-view ✅ 识别小程序码 - ✅ 跳转小程序 ✅ 识别群二维码 - ✅ 跳转到加群页面 ✅ 识别名片二维码 - ✅ 跳转到加好友页面 ❌ 识别小程序二维码 总结,目前微信已经开放了在小程序中长按识别。但是似乎还有一些bug,image标签可以识别到,但是点了没反应。
2021-10-11 - 【小程序代码自查】小程序闪退-内存泄露导致
背景用户经常出现闪退的情况,并提示内存不足。根据用户操作场景,猜测页面存在内存泄露。 内存泄露是什么?内存泄露是程序运行过程中产生的内存变量会一直存在,不会被垃圾回收机制检测到,导致一直不会被销毁,内存占用会越来越大。 比如说: 我们在运行小程序的时候会产生一个页面,小程序会给这个页面创建一个实例,当这个页面销毁的时候,这个实例应该会被销毁。 但是如果我们有个定时器(setInterval),定时器里面对这个页面实例存在引用,那这个页面实例就不会被销毁,因为有被用到。 当存在内存泄露的情况,用户长期使用我们的小程序会导致小程序占用的内存越来越大,最后会导致小程序闪退(被微信强制销毁) 排查内存泄露用到的工具-weakSet先简单描述一下weakSet,让大家有个简单的认识,详细需要去看下文档。 weakSet 是一个可以存储唯一变量的集合,和Set不一样的是,weakSet存储的变量都是弱引用,就是不会影响垃圾回收,如果存储的变量被回收了,在这个集合里面就找不到。 所以weakSet不能被遍历,也没有长度的概念。但是我们可以通过控制台打印weakset的指向,知道里面有多少个元素。如下图: [图片] 通过展开,我们可以知道里面是哪个页面的实例,但是我们在控制台展开就意味着我们对这个页面实例存在引用,则无法被垃圾回收。所以在执行垃圾回收之前需要清空控制台的输出。 如何确定页面是否存在内存泄露如果页面存在内存泄露则不会销毁页面实例。我们只需要判断页面实例有没有被销毁即可。 我们在一开始就把页面实例加到weakSet里面,当执行多次跳转页面之后,会存在多个页面实例,最后回到首页,触发小程序的垃圾回收。 如果不存在内存泄露,那weakSet集合里面只会存在两个页面实例(当前页面实例+返回回来的页面实例),比如下图的页面A和页面B。 如果存在内存泄露,那weakSet集合里面会存在多个页面实例(当前页面实例+存在内存泄露的页面实例*n),比如下图的页面A、页面B、页面C和页面D. 具体如下图: [图片] 如何主动触发小程序的垃圾回收小程序没有api可以让我们触发小程序的垃圾回收,我们目前可以通过开发者工具的performance面板或memory的垃圾回收(collect garbage 垃圾桶图标)按钮。 [图片] [图片] 触发垃圾回收之后的结果如图: [图片] 这个需要手动触发才可以,我们在测试的时候需要手动点击,无法自动触发,所以我们想了个方案自动触发垃圾回收。 通过给内存塞很多数据,然后将这些数据标为无用的,当内存达到500m左右小程序就会触发垃圾回收。这个办法会导致我们内存一段时间激增,建议尽量在跳转页面的时候不要开启,只有在最后页面跳转回首页才进行。 // 主动触发垃圾回收 setInterval(()=>{ if(!global.startGC){ return } let a = [] for (let i = 0; i < 10000000; i++) { a.push({ name: "pling", age: Math.random() * 10000 }) } console.log("length", a.length) a = [] }, 3000) 如何定位页面内存泄露的原因内存泄露的情况举例: global.list = [] Page({ // ... onLoad() { // ... 省略其他代码 // 将页面实例挂载到全局对象,如没有清理,则页面实例会一直不被销毁 global.list.push(this) // 存在Interval计时器,则会一直存在对页面实例的引用 setInterval(() => { console.log("test", this.data) }, 5000); // 通过settimeout的循环调用,实现了类似于interval的效果也会导致页面实例不会被销毁 this.testLoop() const that = this function test(){ console.log(that.data) } // 将内部函数挂载到全局变量,则会导致函数的作用域链都会存在引用,不会被销毁 global.logThis = test }, testLoop(){ setTimeout(() => { this.testLoop() }, 10000); } }) 通过上面我们可以知道一般会有上面四种情况导致内存泄露。 将对象挂载到全局对象上,页面写在没有清楚通过暴露内部函数给外部对象,导致存在作用域的引用,页面卸载没有清楚内部函数存在定时执行的函数存在对页面实例的引用,页面销毁没有清除定时器通过延时执行的函数循环调用,并存在对页面实例的引用,页面销毁没有停止调用。第一第二种情况会比较少出现,目前暂时还没考虑如何去排查。 第三第四种都会对页面实例存在调用,所以我们在页面实例销毁之后对页面实例上的属性进行监听,如果一直存在调用则会有问题。 [图片] 具体实现代码: // 检查页面卸载后对页面实例调用 Page({ data: { test: "111" }, onLoad() { global.pageSet.add(this) setInterval(() => { console.log("test", this.__wxExparserNodeId__, this.data.test) }, 5000); }, // .... onUnload(){ console.log("unload"); const that = this // 获得可以枚举的属性列表 const keys = Object.keys(that) // 加入data 因为data 不是可以枚举的属性 keys.push("data") console.log(keys); keys.map(key=>{ // 获得原本的属性描述 const property = Object.getOwnPropertyDescriptor(that, key) // 保留原有的值 const origin = that[key]; // 获得属性的get方法 有可能没有 const getter = property && property.get // 获得属性的set方法 有可能没有 const setter = property && property.set const isFunction = typeof origin === "function" // 如果是function的话 需要绑定this if(isFunction){ origin.bind(that) } const newThis = {} // 拦截属性 Object.defineProperty(that, key, { get: function(){ console.log(`调用了this.${key}的getter`); // 有getter 调用getter if(getter){ return getter.call(that) } return newThis[key] || origin }, set: function(newVal){ console.log(`调用了this.${key}的setter`); if(setter){ return setter.call(that, newVal) } newThis[key] = newVal } }) }) } }) 测试demo我们在自己项目里面测试会比较麻烦,一开始可能会有干扰,所以我这边弄了个代码片段,先校验一下这个方法是否可行,如果可行再加到自己的项目里面。 小程序代码片段
2021-05-12 - 使用web-view组件加载网页,禁止页面下拉显示“网页由xxx.com提供”
在小程序开发时,总有免不了使用web-view加载网页的时候,但是如果你的网页实现了overflow-y: auto;使网页可滑动查看长内容,此时在小程序页面就会出现:手指滑动页面的时候,没有触发网页内部的滚动,而是出现了整个html页面被下拉,而显示出“网页由xxx.com提供”的字样! 无论是不想暴漏域名还是不想影响网页内部的滑动功能,此时都需要禁止这种情况 下面说下我得解决方法,需要在你的网页里设置(不是在小程序页面设置): 1)html,body{height:100%;overflow:hidden;} 2).warp-cont{ position: fixed; position: -ms-device-fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; } 其中.warp-cont元素是我整个页面的所有内容的父元素,设置了以上两个css之后,页面就不能滑动了 对了,如果设置了以上内容还不起作用的话,可能是我的页面还设置了meta,可以同时设置一下 <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1" />
2021-06-09 - 请问微信小程序的web-view里可以使用微信开放标签<wx-open-launch-app>吗?
请问微信小程序的web-view里可以使用微信开放标签<wx-open-launch-app>吗?
2021-05-15 - 区分小程序正式版,体验版,开发版
使用 wx.getAccountInfoSync 判断
2020-07-28 - 小程序导航栏出现返回首页按钮
目前返回首页按钮出现的条件为(需同时满足): 1. 使用了默认导航栏样式(非 custom) 2. 不是首页或 tabbar 页面(在 app.json 中定义的) 3. 是页面栈最底层页面 如果是开发者自己手写的 tabbar 导致的问题,需要在页面的 onShow 中调用 wx.hideHomeButton() https://developers.weixin.qq.com/miniprogram/dev/api/ui/navigation-bar/wx.hideHomeButton.html手动隐藏返回首页按钮。
2019-09-27 - H5跳转微信小程序成功案例
本人使用的VUE框架。 代码提示: 1、vue代码; 2、点击事件代码; 3、php代码; 遇到的大坑重要提示: 3、必须是认证服务号; 4、必须是服务号绑定的微信小程序 5、https接口获取服务号的access_token 6、如果你的https接口没有问题,但是你的wx-open-launch-weapp标签没有显示或者点击无反应。有以下原因: 1》、vue代码样式问题,可以根据我的代码写样式,最好写成一样的。 2》、在微信开发者工具没有反应的话,最好在微信客户端试试。 3》、JSSDK版本是1.6.0。 4》、如果框架写上还不行,可以试试在文件main.js中,写上: Vue.config.ignoredElements = [‘wx-open-launch-app’, ‘wx-open-launch-weapp’]; 新增项: 5》、在小程序后台配置上业务域名,域名必须有证书。代码放到服务器上,用业务域名访问。 官方链接参考: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html 还是不行的话,下方留言或者私信我。 1、<template> <div class=“cnt”> <div> <button @click=“onClickOpens”>新开页面跳转</button> </div> <div class=“test-position”> <wx-open-launch-weapp id="launch-btn" username="gh_xxxxxxxxxx" path=“pages/index/index.html?user=123&action=abc” > <script type=“text/wxtag-template”> <style>.btn {width: 200px; height: 100px;}</style> <button class=“btn”>打开测试小程序</button> </script> </wx-open-launch-weapp> </div> </div> </template> 2、 onClickOpens() { this.$axios({ method: “POST”, url: “https://接口”, data: { url: window.location.href, }, }).then(function (res) { console.log(res); if (res.status == 200) { console.log(res.data.appid); wx.config({ debug: true, appId: res.data.appid, timestamp: res.data.timestamp, nonceStr: res.data.nonce_str, signature: res.data.sign, jsApiList: [“scanQRCode”], openTagList: [“wx-open-launch-weapp”], // 可选,需要使用的开放标签列表,例如[‘wx-open-launch-weapp’] }); wx.error(function (res) { console.log(res); // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 }); } }); }, 3、 [图片]
2022-12-25 - 网页开放标签 小程序跳转按钮<wx-open-launch-weapp> 可以跳转到体验版吗?
如题,如果只能跳转到正式版,不方便调试啊,能不能跳转到体验版?
2020-12-03 - <wx-open-launch-app>JS安全域名设置为顶级域名,能否同时支持其二级域名?
在HTML中使用唤起App的open-type按钮时,在后台JS安全域名配置中,配置顶级域名(只有一个限额)。 但我们大部分业务域名都是其下二级域名,经测确实不支持,无法唤起App,error回调报错。 能否配置顶级域名后,同时支持二级域名;或者增加JS安全域名数量? 谢谢,盼复。
2020-09-03 - 业务域名校验文件的有效时间问题?
配置业务域名时,需要下载一个校验文件,我想问下,这个校验文件的有效期是多久呢? 由于总公司对要传到服务器的文件的审核比较严格,所以可能从我下载校验文件到他们实际上传到域名根目录下,至少需要三天的时间,所以想问一下,校验文件有效期是多久,会不会三天之后以及超时了,需要我重新下载校验文件?
2020-07-07 - 判断H5是在小程序webview运行三种方案总结
如何判断H5是在小程序内运行 1)如何判断H5是在小程序内运行一? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/0000e48ad7cd2087f46bd378953413 2)如何判断H5是在小程序内运行二? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/0000c4dfdbc7b827097bbbc7551813 3)如何判断H5是在小程序内运行三? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/000c04af154730270e7b0e1715b413 我在之前整理过如何判断H5运行在小程序webview的三种方案,对于选择综合征的朋友来说,这可要纠结好一会了,那我简单来分析下这几种方案 正如参考文章评论所写的那样 [图片] 第一种方案需要引入jssdk,第三种方案社区不少用户反馈部分手机不会正常work,所以优先推荐第二个方案,第二个方案算是纯天然,无依赖,适合所有场景。 代码实践 其实我在生产代码中也是使用方案二,来判断小程序环境,进而对H5在小程序端进行适配。 参考文章 判断是否在小程序web-view环境? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/00022e37c78b802f186750b5751000
2020-12-22 - 谈谈非微信环境如何跳转/打开小程序【URL Scheme】
有些节假日活动或者业务需求,需要把H5的用户引导到小程序来,这或许就比较麻烦了, 微信环境还好,可以直接使用微信提供的<wx-open-launch-weapp>来打开小程序,具体如何实现可以参考这篇文章: https://developers.weixin.qq.com/community/develop/article/doc/000c00b4490678f528baf2cf756413 现在谈的是非微信环境打开我们自己的小程序,如何实现? 我们可以使用微信提供的【URL Scheme】地址来实现跳转。 具体怎么操作,如下: 如何获取【URL Scheme】地址,获取方法有2种? 1、可以不用通过服务器调接口,通过登录公众平台,小程序管理后台「工具」-「生成URL Scheme」入口可以获取打开小程序任意页面的URL Scheme(位置在登录后右上角),可以填写你需要跳转小程序的页面地址及参数,点击生成即可 [图片][图片] 2、可以通过微信api接口服务器端调取来生成【URL Scheme】地址,使用一个token就可以实现获取,生成的地址及参数和上面一样的,可以配置对应的参数,地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.generate.html 怎么正确使用呢? iOS系统支持识别URL Scheme,可在短信等应用场景中直接通过Scheme跳转小程序。 Android系统不支持直接识别URL Scheme,用户无法通过Scheme正常打开小程序,开发者需要使用H5页面中转,再跳转到Scheme实现打开小程序,跳转代码示例如下: location.href = 'weixin://dl/business/?t= *TICKET*' 为了兼容苹果和安卓都能使用,我个人建议统一写成脚本执行跳转locataion.href=‘URL Scheme地址’,这可能会出现,有些浏览器会自动拦截脚本自动执行的内容,导致跳转H5页面不能马上调起跳转小程序,所以页面最好保留一个按钮,标明跳转失败可以点击此按钮跳转小程序。 到此已经可以在非微信环境浏览器打开微信小程序了,祝你代码好运没bug(注:企业微信也支持这种【URL Scheme】调起小程序)。
2021-04-12 - generatescheme接口返回40212
[图片] 小程序页面路径:/pages/index/index?open_url=https://a.com/index.html?a=1&b=1&c=1 当参数值为链接时,为了保证参数b=1&c=1附带到https://a.com/index.html上,我们对参数值做了encode,传入generatescheme接口的query如下: open_url=https%3A%2F%2Fa.com%2Findex.html%3Fa%3D1%26b%3D1%26c%3D1 在请求generatescheme接口时返回40212参数query填写错误。这里是限制百分号的原因吗,如果是以上场景该怎么获取url scheme?求官方解答
2021-02-03 - 通过URL Scheme方式进入小程序后,如何拿到后台传过来的参数?
通过 URL Scheme 方式进入小程序,生成 Scheme 时传入的 jump_wxa 为 { path: "pages/test/test", query: "query=test"} (我查阅了社区其他人大致时这么传 query 的,即 key=value的形式),目前可以进入指定的 path 页面,但是在 test 页面 onLoad 的 options 里面直接用 options.query 获取不到 test,请问有踩过坑的大神教下如何在 options 中拿到传进来的参数吗,拿到的值是字符串还是对象,这个要发布的小程序才可以测试,开发者工具也没有提供模拟这种场景的1065,真蛋疼。
2021-01-26 - 企业客户服务插件使用-3004,用户如何清授权数据?
企业客户服务插件wx104a1a20c3f81ec2,本来使用正常,但有一个微信号点击企业客户服务插件提示 -3004错误,后来在开发者工具清除授权信息后,重新授权企业客户服务后发送服务通知消息正常。 问题是:普通用户如何清除授权数据,三个点关于设置里面没有插件的授权设置啊。请回复谢谢
2020-06-17 - 点击小程序通过web-view跳转到关联的公众号文章,安卓正常 ios提示请在微信客户端打开?
[图片]
2020-10-14 - 云开发-实现模糊搜索
效果展示 [图片] 需求描述 需求:通过点击标签和用户在搜索框输入文字进行模糊匹配相关文章,帮助用户实现快速查询精准内容。 实现思路: 获取标签/文本框内容 查询使用正则匹配 输出结果到页面 查询代码 [代码] // 获取数据库对象 const db = wx.cloud.database() // 查询文章表 db.collection('articles').where({ //使用正则查询,实现对搜索的模糊查询 title: db.RegExp({ regexp: 搜索内容, //从搜索栏中获取的value作为规则进行匹配。 options: 'i', //大小写不区分 }), type: 1 }).get({ success: res => { that.setData({ list: res.data }) } }) [代码] 总结 模糊关键函数:where、RegExp where:官方传送门 RegExp:官方传送门 如有收获,记得点赞、收藏 如有疑问,欢迎进行留言讨论
2020-08-15 - 微信分享SDK是最新版本, 8月份出现未验证应用的情况, 解决后没问题, 但是9月份又出现这个情况?
wsxappid : wxfe2a9da163481ba9 universalLink:https://open.zhundao.net/ 自检也是到第六步,通过的, 2020-10-13 09:47:22:0.4222:-[AppDelegate application:didFinishLaunchingWithOptions:]_block_invoke[0063]6, 1, All Check Passed!, 通过universalLink也能打开app, 但是分享出去还是显示未验证的应用
2020-10-13 - 现在session_key的有效期多久?我应该设置Redis缓存时间多久?
wx.login()登录返回session_key,我应该在服务端如何保存session_key的有效时长呢?
2020-05-27 - 解决小程序中webview页面多层history返回问题
小程序开发中遇到的问题:小程序中嵌套了一个webview页面,webview页面中有静默授权(A1页面静默授权后重定向到A2页面),点小程序原生的返回按钮会返回到A1页面,然后页面就会反复静默授权 预期表现:点小程序原生的返回按钮后返回到小程序上个页面 解决方案:通过[代码]history.pushState[代码]添加历史记录名目,[代码]history.onpopstate[代码]监听历史记录条目发生变化时,调用小程序API[代码]wx.navigateBack[代码] [代码]window.addEventListener('popstate', (event) => { wx.miniProgram.navigateBack(); }); const code = getSearch('code'); // 伪代码,获取查询参数 if (!code) { // 页面A1 if (isWeixin()) { // 微信环境 const redirectUrl = window.location.href + '&code=1'; window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize' + '?appid=' + appId + '&redirect_uri=' + encodeURIComponent(redirectUrl) + '&response_type=code&scope=snsapi_userinfo' + '#wechat_redirect'; // 静默授权伪代码 } else { alert('当前不是微信环境'); } } else { // 页面A2 history.pushState({page: 1}, null, window.location.href); } [代码] 刚开始想的解决办法是用localStorage,跳转到A2时存储一个值,返回到A1时获取这个值,如果有值就清除这个值并且回退到小程序页面。听起来似乎也可行,但小程序的缓存和微信的缓存是同步的,如果在微信环境中直接访问A1页面,重定向到A2会存值,如果直接关闭页面,不会被清除,那么在小程序中访问时就直接回退了。
2019-08-19 - {"code":"NO_AUTH","message":"当前商户号没有使用该接口的权限"}
查询电商平台账户实时余额API时返回{"code":"NO_AUTH","message":"当前商户号没有使用该接口的权限"} 商户类型为普通商户
2020-06-22 - 是否只有V3才有余额查询接口?
[图片] 看了一下我们属于自助接入的商户,是使用的V2接口,没有文档搜索功能,找了很久也没有找到余额查询接口。但是V3里面有搜索功能,搜到一个电商通的余额查询接口。 1 请问属于V2的商户号,是否没有余额查询接口,只能通过登录后台查看? 2 如果有多个商户号需要查询余额只能通过挨个登录后台解决吗?
2020-09-16 - 公众号如何查询该主体名下所绑定的其他帐号?
登录公众号后台https://mp.weixin.qq.com/,点击“公众号设置”->“帐号详情”->“主体信息”->“详情”;在主体绑定帐号这一栏点击“查询”,使用管理员微信扫描二维码进行验证后即可查询到主体名下所有申请的帐号。具体参考https://kf.qq.com/faq/171219Mn2qmi171219vY3mmI.html
2020-07-17 - 下载最新的开发工具,启动不了,黑屏,win7系统,请问怎么解决
https://developers.weixin.qq.com/miniprogram/introduction/
2020-04-15 - 获取小程序码数量限制的计算规则
获取小程序码的接口A和接口C总共生成的码数量限制为 100,000,参数一样的就只算一次,和接口请求次数没有关系。
2019-10-25 - 解读微信内网页跳转到APP方法,使用微信开放标签:<wx-open-launch-app>
1、功能说明 微信内置浏览器支持的<wx-open-launch-app>开放标签可以让你的H5网页拉起APP。这个是不是很神奇也是很有必要的一个功能?微信为你想好啦~实现这个功能并不复杂,代码量可以忽略为0.但是一些相关的注意事项,准入规则还是必须要明确的,否则在开发过程中容易踩到各种坑。 2、接入逻辑 2.1 设置服务号的JS安全域名,开放标签必须在这个域名或者子域名下生效详见《微信开放标签说明文档》 2.2 注册登陆微信开放平台,新建APP审核并上架成功。然后登记域名和你的APP应用绑定关系,让他们能关联起来 [图片] 3、准入门槛 看起来第二大步很简单,其实操作起来还是有点繁琐的,除去繁琐的设置外,这里有个准入门槛: 3.1 服务号门槛 服务号已认证 开放平台账号已认证 服务号与开放平台账号同主体 绑定域名和移动应用 绑定域名的要求: 域名须为当前服务号的 JS 安全域名或其子域名 域名只能同时绑定一个移动应用,因此须确保域名未被其他移动应用绑定 3.2 绑定移动应用的要求 只能绑定同一微信开放平台账号下审核通过的移动应用 3.3 绑定次数 每月可修改绑定3次 4、参考文档: 微信内网页跳转APP功能-功能介绍 | 微信开放文档 开放标签说明文档 | 微信开放文档
2020-05-07 - 今天只做一件事:带你玩转微信“一物一码”
欢迎进入微信的“码上世界”! 作者丨Tsai [图片] 最近微信两大动作引爆了话题讨论,一个是前天微信新版上线的“超级浮窗”,另一个是同一天官宣正式开放的“一物一码”能力。 前者,一定程度解决了用户先前在微信内无法进行“多任务操作”的痛点;后者,意图借助小程序开启“连接万物”的时代,并且加速商家全链数字化的进程。 01链接万物 据微信官方介绍,“一物一码,就是让每个商品都有一个自己的专属码。”而且由于“微型码”作为腾讯专利码制,无法被破解和仿制,因此它在某种意义上可以视作商品的入网ID,具有唯一性,并且与商品一一对应。 [图片] 按照这样的理解,“一物一码”似乎只是连接了商品这一维度,称之为开启“连接万物”的时代未免过分夸大了。事情显然没那么简单,通过在商品上“赋码”的方式,“一物一码”可以实现消费者扫码跳转小程序、跳转公众号、参与营销互动等,将“人”与“货”紧密相连。 而这,才是“一物一码”真正令人心动的地方,也是腾讯智慧零售目前正在解决的,解决大部分零售企业目前所处的“人货割裂”状态。 [图片] 当“人”与“货”不再割裂时,商家的可操作空间也就能大大提高。借助“一物一码”,商家不仅可以通过多样的营销玩法与用户进行高效互动、获得流量,还能够利用其大数据支持了解自家的营销效果,及时调整营销策略,真正帮助商家读懂用户。 不过,我们前面这些还停留在理论层面,商家具体该怎么使用,用完又能达到怎样的效果?而这,或许才是商家真正关心的。于是我们带着这些问题,对微信“一物一码”首批合作商之一的“蒙牛”进行案例拆解(蒙牛成为2018年FIFA世界杯全球官方赞助商),为大家尽可能地剖析“一物一码”的应用场景和运营玩法。 [图片] 02 庖丁解牛(蒙牛) 正式拆解前,我们先把“一物一码”和“蒙牛世界杯”的合作效果数据抛出来:此次活动线下扫码参与人次2.2亿,总参与人数7165万人,人均复购频次3次,6.18当天小程序访问量达到顶峰:2072万次,小程序日均PV量85万次。 这样的数据是不是很诱人,是不是很想知道微信“一物一码”究竟是如何给到“蒙牛”支持的?话不多说,下面我们赶紧来看一下: 1)多样化的跑码支持——不止瓶盖码 微信“一物一码”,不止支持瓶盖码,还支持一包一码、箱码、棒签码等,并且每个产品的唯一码都会附上数据信息。 这种多样化的跑码支持,使得蒙牛全品线都能参与此次世界杯活动,并且品牌在整个活动过程中,还能够根据数据对品线搭配进行及时的策略调整。 [图片] 2)丰富的接口能力支持——“一物一码+” “一物一码”的强大还在于微信能够提供的丰富接口能力,当时蒙牛就主打“腾讯云+小程序”的组合拳,运用到卡券、微信运动、自定义组件、红包、扫码、登录、获取用户信息、获取用户GPS等接口功能,丰富了整个小程序的交互体验。 以当时推出的“全民集牛卡”活动为例,消费者通过购买蒙牛世界杯指定包装产品,打开微信,使用“扫一扫”功能扫描包装二维码,即进入蒙牛FIFA世界杯小程序,领取红包的同时获得定制版虚拟牛卡。 [图片] 不仅如此,消费者还可以通过微信运动步数兑换、好友分享索要获得更多牛卡,而这些积攒下来的牛卡都将用于最后的抽奖活动。“一物一码”就像个综合枢纽,它将微信众多的工具能力进行聚合,然后以最合适的组合方式进行搭配发射出去,赋能商家更强的营销互动能力。 3)场景多变的互动玩法——让用户动起来 如果把“一物一码”比作一台计算机,那微信提供的丰富接口能力就是硬件设施,不过再好的硬件也需要软件来支撑,放到商家身上,这里的“软件”就是基于接口能力的运营玩法。 在蒙牛世界杯活动中,除了前面提到的“集牛卡”,蒙牛还推出“全民竞猜 瓜分百万红包”、“优益C-吃货来找茬”、“活力优益C 喝彩FIFA世界杯”等多变的互动活动,通过提高消费者的互动粘性,进而刺激他们参与消费。 [图片] 比如在“优益C-吃货来找茬”活动中,蒙牛为用户设计了一个小游戏:15秒内要躲避餐桌上的食物并且收集优益C,每成功收集一瓶优益C,即可获得10活力值,另外,针对已经购买蒙牛产品的用户,进入游戏即可获得额外的500活力值(目的还是刺激用户消费),当然,这些活力值最后也可以参与抽奖; 还有“活力优益C 喝彩FIFA世界杯”的活动,用户进行对应的活动专区后,可以通过拍照/上传靓照并选择心仪的球队元素服饰,生成专属喝彩海报,并且将活动分享给好友还将获得更多电商优惠(本质还是利诱用户分享进行裂变传播)。 [图片] 4)专业的运营服务支持——你的运营“大管家” 前面我们提到,“一物一码”的微型码是腾讯专利码制,无法被破解和仿制,因此它能够用于消费者进行商品溯源,增强消费者对商品及品牌的信任,这是一方面。 另一方面,由于微信“一物一码”以小程序为活动载体,能够将商家活动数字化,因此非常方便商家追踪多品线、地域和城市的参与情况。 [图片] 这还不是全部,“一物一码”还给蒙牛提供一系列细致的运营服务,比如上线后优化活跃度的活动策划、多维度的数据运营报告、页面优化解决方案等,可以给商家提供消费者参与互动扫码的及时数据,一旦出现活动相关异常波动,系统可以发出告警给到活动相关负责人,及时介入解决。 03全链数字化是未来 可以看到,“一物一码”的开放,能够给予商家极大的营销助力,它以小程序为互动抓手,借助微信卡包、公众号、积分等级等能力,对消费进行持续触达和运营的同时,助力商家构建自主可运营的数字化资产,从而提升复购转化。 谈到微信“一物一码”,其实我们很难绕开“腾讯优码计划”。作为“一物一码”的全新升级,“优码”的目的就是融合腾讯全平台能力,通过为商家提供一站式解决方案,从而帮助商家实现与消费者真正“零距离”。 [图片] 对此,腾讯公司副总裁林璟骅也于今年4月份指出,移动社交对零售业的最大帮助在于让零售回归以人为本。但随着行业向数字化的深水区迈进,线上营销和线下渠道割裂仍然困扰着零售人。 “未来的生意是全链路数字化,品牌必须沉淀自有的数字化资产。”这会是未来,也将会是商家无法逃脱的变革,即使这变革它有点残酷。
2019-07-23 - 微信小程序开发new Date()在IOS注意点
一般我们服务端接口返回的时间形式为: 2019-07-19 11:25:21 需要前端转换成时间戳,直接使用 [代码]new Date("2019-07-19 11:25:21") [代码] 在微信小程序开发中IOS上获取不到对应的时间对象。 解决方案: [代码]Date.parse("2019-07-19 11:25:21".replace(/-/g,"/")); [代码]
2019-09-23 - 如何使用scroll-view制作左右滚动导航条效果
最新:2020/06/13。修改为scroll-view与swiper联动效果,新增下拉刷新以及上拉加载效果。。具体效果查看代码片段,以下文章内容和就不改了 刚刚在社区里看到 有老哥在问如何做滚动的导航栏。这里简单给他写了个代码片段,需要的大哥拿去随便改改,先看效果图: [图片] 代码如下: wxml [代码]<scroll-view class="scroll-wrapper" scroll-x scroll-with-animation="true" scroll-into-view="item{{currentTab < 4 ? 0 : currentTab - 3}}" > <view class="navigate-item" id="item{{index}}" wx:for="{{taskList}}" wx:key="{{index}}" data-index="{{index}}" bindtap="handleClick"> <view class="names {{currentTab === index ? 'active' : ''}}">{{item.name}}</view> <view class="currtline {{currentTab === index ? 'active' : ''}}"></view> </view> </scroll-view> [代码] wxss [代码].scroll-wrapper { white-space: nowrap; -webkit-overflow-scrolling: touch; background: #FFF; height: 90rpx; padding: 0 32rpx; box-sizing: border-box; } ::-webkit-scrollbar { width: 0; height: 0; color: transparent; } .navigate-item { display: inline-block; text-align: center; height: 90rpx; line-height: 90rpx; margin: 0 16rpx; } .names { font-size: 28rpx; color: #3c3c3c; } .names.active { color: #00cc88; font-weight: bold; font-size: 34rpx; } .currtline { margin: -8rpx auto 0 auto; width: 100rpx; height: 8rpx; border-radius: 4rpx; } .currtline.active { background: #47CD88; transition: all .3s; } [代码] JS [代码]const app = getApp() Page({ data: { currentTab: 0, taskList: [{ name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, { name: '有趣好玩' }, ] }, onLoad() { }, handleClick(e) { let currentTab = e.currentTarget.dataset.index this.setData({ currentTab }) }, }) [代码] 最后奉上代码片段: https://developers.weixin.qq.com/s/nkyp64mN7fim
2020-06-13 - 关于订阅号是否可以创建小程序的问题
目前我们有一个已经认证过的订阅号,我们需要开发一个小程序。请问官方大佬是不是还需要注册一个小程序的账号呢?还是说在订阅号的基础开通小程序,请问这两者有什么区别的吗?
2019-07-16 - 导航栏样式支持页面配置的功能预告及排查建议
各位开发者: 大家下午好。 当前小程序已支持在全局配置中设置导航栏样式,举个例子,下方左图为默认导航栏样式;右图为自定义导航栏样式。 [图片] 后来我们在社区里收到了很多反馈,希望小程序支持在页面配置中设置导航栏样式。在即将发布的客户端版本中,这一特性就将上线,大家可以根据自己的需求,为单个页面设置导航栏样式。 配置方法:开发者可以在任意一个小程序页面中的 .json 文件里配置 navigationStyle 属性(其中 [代码]default[代码] 为默认导航栏样式; [代码]custom[代码] 为自定义导航栏,只保留右上角胶囊按钮),即可定义单个页面的导航栏样式。 温馨提示:若开发者以前在页面配置里误设了navigationStyle属性,新版客户端一旦发布,配置内容会立即生效,这可能会导致小程序在新版客户端内的页面布局产生错乱,望开发者尽快检查确认,以免影响小程序的使用体验。 微信团队2018.12.21
2018-12-21 - 小程序涉及iOS虚拟支付修改指引
近期,开发者社区几乎隔三差五就被“如何整改虚拟支付”霸占。社区君在大家的强烈诉求下,特地整理了大家审核过程中经常遇到的问题。 问题1 虚拟支付到底是什么? 虚拟支付是指购买非实物商品。比如:VIP会员、充值、课程、音视频等虚拟产品。 问题2 为什么关闭了虚拟支付功能,还是不能过审? 部分开发者在提审时,仅在后台关闭了支付接口,但在前端仍保留购买/支付/订阅等功能或按钮,在iOS端的界面也都会有类似“订阅课程、开通VIP”等标识,这类呈现货架价格、提示购买的行为将被禁止。 比如: [图片] 这类展示货架(价格标签)的,将被拒绝 问题3 为什么已经去掉了引导关注公众号,还是不能过审? 请勿试图引导用户到微信公众号、H5、App或是任何外链进行付费。任何为用户提供前往支付流程的路径/文案,都将被拒绝。 比如: [图片] 这类通过【客服消息】-【个人微信号】,完成购买行为,将会被拒绝 [图片] 这类引导到H5,完成购买的行为,将会被拒绝 [图片] 这类引导到公众号,完成购买的行为,将会被拒绝 以下提供3种修改示例,仅供参考。 1、关闭iOS付费通道。 以小程序【腾讯视频】为例,iOS端关闭会员卡开通渠道,原【开通VIP】按钮,现仅显示【你还不是会员】,不再提供会员开通服务。比如: [图片] 2、所有付费内容均更改为免费。 以小程序【有道精品课】为例,iOS端将所有付费内容更改为免费,原【付费解锁】,现已完全免费使用。比如: [图片] 3、前端直接拦截提示不可服务。 以小程序【网易公开课精品】、【腾讯视频VIP】为例,iOS端点击订阅、开通VIP服务,前端直接拦截提示不可服务。但,如果页面呈现货架价格,提示购买行为的(如问题2),将会被拒绝。比如: [图片]
2018-08-17