- iOS端微信浏览器会因为内存过高不停地重复刷新页面?为什么微信浏览器的内存使用量远高于Safari?
设备:iPhone 14 Plus(iOS 16.4.1) 微信版本:8.0.37 我们开发的是一个基于Three.js的3D头像编辑器,地址为:https://d.design/h5/#/editor?pageType=avatar&materialId=helCcZKZLc 问题1:页面使用的内存过高时,iOS端微信内嵌浏览器会不停地重复刷新页面?内存使用量大于多少时会触发呢? 问题2:打开同一个页面时,使用Xcode的Intruments的Activity Monitor进行测量,iOS端Safari浏览器使用的内存只有567MB,而iOS端的微信浏览器使用的内存高达1.12GB,请问两者为什么差距这么大呢? 具体测试数据如下: 浏览器 版本 内存使用量 Safari 16.4.1 567MiB Chrome 114.0.5735.50 584MiB 夸克 6.3.3.1697 1.13GiB 微信 Version 8.0.37 1.12GiB Safari内存使用量截图 [图片] 微信内存使用量截图 [图片]
2023-06-01 - 从不同端进入微信小程序的方式
在开发过程中会经常遇到要从H5、APP、短信等各端进入小程序的功能。今天就来简单聊聊怎么实现从各端进入到微信小程序的现实和背景 短信进入到小程序 背景:短信作为一个重要的流量入口,经常会被用于唤醒用户。但是历史原因,短信一般都是内嵌网页链接,带给用户的体验较差,并且对此渠道的粘性态度,微信小程序的出现刚好一定程度的解决了这方面的问题,微信小程序的功能多样,并且有一些订阅功能,能够一定程度降低唤起成本,所以越来越多的渠道选择通过用短信拉起小程序作为一个入口 实现方式: 生成小程序的URL Scheme,进入小程序管理后台,选择“工具-生成URL Scheme”,这样 [图片] 添加需要跳转指定页面路径,是否需要传参,添加完成之后生成你的地址,这时候发送短信只要把这个地址带上,用户点开的时候就能直接跳转到对应的小程序了 [图片] Tips: 这种方式只能实现固定路径和参数的scheme,如果需要动态路径则需要考虑后端支持或者自己动手实现云函数支持了,这里就不多赘述了。 H5进入小程序 背景:H5作为用户增长投放最重要的一环,经常会被投放到各个app或者浏览器中,这种推广简单且无兼容问题,所以也是备受青睐的一种方式 实现:实现方式也是基于微信小程序的scheme,在H5页面跳转到地方放入scheme,跳转也只需要执行 window.location.href="weixin://dl/business/?t=cwlT2e6Avvq" 就可以,部分app或者浏览器不兼容可以使用 iframe的方式来实现 const iframe = document.createElement('iframe') iframe.style.display = 'none' iframe.src = scheme document.documentElement.appendChild(iframe) setTimeout(function () { if (iframe) { document.documentElement.removeChild(iframe) } }, 0) Tips: 一般做用户触发调用可以直接通达,有些浏览器会有拦截直接放到onload函数中的操作,这时候需要手动点击才可以打开。 APP进入小程序 背景:移动互联网时代的来临,每个人已经离不开手机,更离不开手机里的各种app。抖音快手微博网易等app占据了时间和精力,所以一写聪明的人又抓住了眼球,通过常用app里来打广告实现用户增长 实现方式:一些用户量大的APP一般都会暴露出一些Native方法供调用,不通的app有不同的接入方式,并且需要做一些注册能力等的功能可以按实际接入的方式来实现即可。
2021-12-30 - 如何突破一次只能获取20条记录的limit限制?只需要一行代码。
笔者刚遇到需要一次性拉取超过100条(云函数里超过1000条)记录的这种需求。 一般情况下,会有下面两种处理方式: 1、先获取总数,再for循环,每次拉取limit条记录;(可结合Promise.all并发) 2、递归拉取,每次拉取limit条记录,直到拉取的记录数量小于limit。 以上两种方式都比较麻烦,于是动了一脑筋,以最简单的方式实现上面的需求。 极简代码如下: db.collection('order').aggregate() .match({ status:'已付费' }) .addFields({ tempTag:1 //增加一个临时标签;也可以不要addFields这个阶段; }) .group({ _id:'$tempTag', orders:$.push('$$ROOT') //一次性拉取超过100条或者1000条记录 }) .end() .then(res=>{ let orders = res.list[0].orders console.log(orders) }) 一个临时标签,搞定。 小心数据量太大搞崩了,崩溃的极限是多少,需要各位自行摸索了。 需要注意的是,如果是云函数里执行以上代码(比如lookup),返回小程序端的数据量不要超过1M。
2021-03-15 - 流量主一天你们能赚多少钱?
[图片] 小程序流量主的出现,无疑是解决小程序变现难的一个绝佳渠道。其意义不下于公众号流量主广告的上线。“有流量、变现难”本来是小程序开发者面前挥之不去的重重迷雾,而现在腾讯开放了小程序流量主,瞬间将小程序开发者们面前的迷雾拨开,他们能放心大胆地往前走。 我自认为我运营到很高了,但是有人一天1.9W+,将近2万,他们是怎么运营的?粉丝都是怎么来的? 有没有大神一起来探讨一下?
2020-01-06 - 微信小程序自定义tarbra的坑,动态适配iphoneX iphone11 带安全区域的手机
微信小程序虽然开放了自定义的tabbar 因为他用的是fixed定位布局 导致每个tabbar页都要去动态计算padding-bottom 或者bottom值,之前尝试过 wx.getSystemInfo({ success: function(res) { console.log(res) if (res.model.search('iPhone X') != -1) { that.globalData.isIphoneX = true } }, }) 在app.js中判断是不是iphone X ok这个时候是完美适配的 但是有一天测试同学拿着iphone 11 pro max找我 说页面的padding-bottom值会盖住,在我的排查中发现res.model.search('iPhone X') != -1 这句代码拿到的结果为-1 我之前是这么处理的 我判断机型为iphonex的时候 tabbar 页面的padding-bottom为100rpx+64rpx 但是iphone 11pro 系列手机在这个判断中无效 经过排查并反复改 终于拿到了完美适配的方案!!!!我们只需要在外层的view padding-bottom: calc(100rpx + env(safe-area-inset-bottom))就好了 有需要的同学点个关注吧!!! 对了 再次说明下 custom-tab-bar.wxss 中.tar-bar里的height我自己改成了100rpx 微信官方的是50px
2020-03-19 - 小程序实现img的map area功能
问题:《小程序如何实现图片热区的功能,类似html map area的功能,求指教或者思路?》 貌似小程序现在还没有图片热区的功能,所以自己动手写了一个 图片热区组件 maparea,有需要的可以拿去改改 思路:点击坐标是否在某个区域内 点击坐标在href区域内,视为点击了热区 点击坐标在href区域内,同时也在nohref区域内,视为点击了非热区 难点: 1、点击坐标在多边形内的判断 2、图片缩放带来的坐标变化,导致热区坐标变化问题 3、目前效果最好的图片mode为widthFix,其他多少会有问题 代码片段:https://developers.weixin.qq.com/s/wLy4DvmI7ahA PS: 大佬们,有好的思路或者有更好的效果的,欢迎交流交流 [图片]
2020-07-17