- ios swiper组件中使用video,全屏错位?
iOS 的 video 组件全屏需要使用 position: fixed 属性。如果 video 的父组件包含 position: relative;position: absolute 等 css 属性( 除 position: static 以外的属性),便会破坏 video 的全屏定位。 因此不要对需要全屏的 video 的任何父组件使用任何 position: relative;position: absolute 等定位属性。
2022-02-28 - 破解了上万个小程序,并上架的服务商-笨淘淘。以及背后的公司武汉X源举报侵权居然没有用?
武汉X源科技有限公司破解了上万个小程序,利用之前服务商的漏洞,批量注册小程序,并在昆明官渡区,沈阳,武汉,山西晋城市等地方批量注册数千家公司和个体户。破解其他开发者的心血,批量上架并霸榜。快去搜搜你的小程序有没有被破解并重新上架。关键是由于被破解的大部分是小开发者,没有申请软著,投诉并没有用。 如果你搜索下面的小程序,显示已经暂停服务,因为开发者的愤怒让他们害怕,暂停了一部分小程序,并且取消了小程序和服务商的关联,但是这远远不够,我们希望官方能惩罚他们。--10月17号晚上22:35分更新 文章分成三部分:1、破解证据;2、上架了多少产品;3、注册了多少公司。 1、部分破解证据 下面以吉祥日历和文学典读,还发现有今日菜价等等。持续更新中。 以破解小程序吉祥日历为例: [图片] [图片] 笨淘淘的套路就是批量破解,首页名字都没有改,加上视频广告和各种插屏广告,还接入第三方的谷歌广告。批量上线。 由于他们盗版的都是小开发者,并没有软著,举报代码侵权,并没有用。 更让人感觉讽刺的是这种满眼广告的小程序用户比正版小程序用户多的多! 看到有人说这个。不算,但是各位如果你们搜索过就会发现, 左上角的logo是一样, 顶部的名字是一样,UI一摸一样,甚至bug也一样,唯一的差别就是对方在顶部注入了视频广告,导致视觉上看起来有点不像! 下面这个文学典读: 对方破解后就是在顶部加视频广告,连搜索结果都一摸一样。 底部的文章顺序也一摸一样。 详情页就是添加了视频广告。 从内容到UI都是一样。 原版:干净整洁 [图片] 盗版:批量插入广告,定时弹出插屏广告,动不动就有激励视频。 而且文章和诗词的顺序一摸一样,甚至连搜索的内容都是一致的。 更恐怖的是当搜索相关关键词时候,大部分都是盗版小程序。 [图片] 对方上线了多少个类似古诗词的应用。 以下的小程序仅仅为古诗必备的前30搜出来的应用。如果考虑到长尾词。只会更多。 [图片] [图片][图片][图片][图片][图片][图片] 2、上架了多少产品; 以上仅仅是其中两个例子。还有各类群工具,转盘,扫描,记账、表情包,日历,五行穿衣,变声器,压缩,拼图,各类小游戏,游戏助手等工具。 可以看到有的小程序上甚至不加掩饰,连名字都没有改。更讽刺的是盗版的用户比正版用户多的多。 盗版小程序破千的应用比比皆是。 通过关键词霸榜,蹭名字,蹭图标混淆小程序,快速提量,并且通过官方广告+第三方广告快速变现,完全不管用户体验。点击一个按钮就要激励视频。 极大的破坏了生态。 下面以扫描王关键词,统计前70有多少个笨淘淘服务商相关的小程序。 每个小程序都是一样,并没有差异化体验,而且小程序体验非常糟糕,广告满天飞。动不动强制用户看激励视频。以下截屏,是按照顺序截图,统计了前70个小程序,其中29个是笨淘淘相关小程序,占比41%。 每个都一摸一样。 到处是广告,动不动就弹广告。 [图片] [图片] [图片] 如果搜索更加一些细分类型的关键词,结果也很多。 比如变声器,转盘。 如下图的变声器,占比达到40%。 [图片][图片] 社区有人统计出一部分,比如官渡区,然而这仅仅是一部分,还有沈阳市苏家屯区和海口部分地区。 根据他们的小程序序号,可能有40万个。 他们的小程序一开始名字都叫 “数字+试用小程序”, 下面这个小程序,是427970。如果排序正确,就是说下面这个小程序是第427970个小程序。 [图片] 如何识别这些小程序,打开小程序,更多资料,查看授权第三方服务, 只要是笨淘淘的就是他们的小程序。 2023年10月17号发现,对方已经在取消授权第三方服务。 如果要确实是否是笨淘淘的小程序,需要看到具体公司,然后到爱企查,天眼查,查看法人,如果是赵婷婷或者是陈池,八九不离十。 3、注册了多少公司 这些公司大多以武汉X源科技有限公司的老板陈池和赵婷婷为主。 要注意很多新公司没法被关联的。所以这里现实330仅仅是其中一部分。 [图片] [图片] [图片] [图片] [图片] [图片] 要注意,这里都仅仅是一部分。 很多公司并没有相互关联,如下的这一家。 [图片] 这个公司的小程序是这个画风,清一色破解批量上架小程序。 [图片] 看到社区有人反馈,但这仅仅是一部分。下面是链接。 https://developers.weixin.qq.com/community/develop/doc/00002c8efd0b70d3f6306550761800?highLine=%25E5%25AE%2598%25E6%25B8%25A1%25E5%258C%25BA 一个武汉X源科技的陈年往事。 这张图是2023年7月6号截图。 当时发现自己有打牌记分的需求。看到分数异常截图下来。没想到还有用。 当时是武汉X源做了个打牌记账工具和排名第一个的“打牌记账”UI一摸一样,“打牌记账|计分器”短时间内就排名靠前,并且评分 5.0分, 而打牌记账 分数3.6分。今天,已经完全找不到武汉X源的“打牌记账”小程序了,不知道当时收到官方什么惩罚。 但是,笨淘淘系上线了一系列新的“打牌记账”类应用, UI已经和当初抄袭的完全不同。如果被逃过,估计他们就会给破解的小程序套上新的UI。摇身一变。 再次希望对方能得到应有的惩罚。 [图片] 如果批量破解上架举报没有用,那大家开发什么,批量上架就行了。请官方严肃处理这个服务商。严惩相关人员。
2023-10-30 - 固定层被textarea里的文字穿透
想做个顶部固定按钮。 下方是个textarea。固定view可以盖住textarea,但当输入文字时,文字却穿透了固定view的背景色与文字。 求助。 [代码].bar {[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]80[代码][代码]rpx;[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]100%[代码][代码];[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]fixed[代码][代码];[代码][代码] [代码][代码]top[代码][代码]: [代码][代码]0px[代码][代码];[代码][代码] [代码][代码]border-top-width[代码][代码]: [代码][代码]1px[代码][代码];[代码][代码] [代码][代码]border-top-style[代码][代码]: [代码][代码]solid[代码][代码];[代码][代码] [代码][代码]border-top-color[代码][代码]: [代码][代码]#F7F7F7[代码][代码];[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]99999999[代码][代码];[代码][代码]}[代码]
2018-07-13 - 小程序调用boundingClientRect等获取元素位置信息很慢
如题,我要实现一个sticky组件,需要在onPageScroll中调用boundingClientRect获取元素的位置信息,但是 现在有一个问题: 如果页面慢慢滚动的话,能在4ms内获取到元素位置信息,看起来过渡就很流畅; 而如果一下子将页面滚动到顶部或者底部(页面到头后会超出可滚动区域然后回弹一下),这个时候获取位置信息就会很慢,平均500ms,有时候是1700ms,这会导致过渡的时候有一个卡顿。 下图console中打印的是我滚动页面时,每次调用boundingClientRect前和执行boundingClientRect的回调函数之间的时间差,可以看到,有时候很快(2、30、80ms),有时候就很慢(315、1367、1900ms)。 [图片] [图片] 我已经给onPageScroll事件设置了debounce,保证滚动结束后100ms后才调用boundingClientRect。 我上传了一个代码片段,复现步骤是:滚动的稍微慢点,或者特别快(我也不知道具体是什么情况下)多试试。它有时候获取得很快,都在10ms内: [图片] 有时候就获取得很慢,是1000ms以上: [图片] 请问这是什么原因?
2018-05-25 - 如何实现快速生成朋友圈海报分享图
由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 Canvas 功能生成一张带有小程序码的图片,然后引导用户下载图片到本地后再分享到朋友圈。相信大家在绘制分享图中应该踩到 Canvas 的各种(坑)彩dan了吧~ 这里首先推荐一个开源的组件:painter(通过该组件目前我们已经成功在支付宝小程序上也应用上了分享图功能) 咱们不多说,直接上手就是干。 [图片] 首先我们新增一个自定义组件,在该组件的json中引入painter [代码]{ "component": true, "usingComponents": { "painter": "/painter/painter" } } [代码] 然后组件的WXML (代码片段在最后) [代码]// 将该组件定位在屏幕之外,用户查看不到。 <painter style="position: absolute; top: -9999rpx;" palette="{{imgDraw}}" bind:imgOK="onImgOK" /> [代码] 重点来了 JS (代码片段在最后) [代码]Component({ properties: { // 是否开始绘图 isCanDraw: { type: Boolean, value: false, observer(newVal) { newVal && this.handleStartDrawImg() } }, // 用户头像昵称信息 userInfo: { type: Object, value: { avatarUrl: '', nickName: '' } } }, data: { imgDraw: {}, // 绘制图片的大对象 sharePath: '' // 生成的分享图 }, methods: { handleStartDrawImg() { wx.showLoading({ title: '生成中' }) this.setData({ imgDraw: { width: '750rpx', height: '1334rpx', background: 'https://qiniu-image.qtshe.com/20190506share-bg.png', views: [ { type: 'image', url: 'https://qiniu-image.qtshe.com/1560248372315_467.jpg', css: { top: '32rpx', left: '30rpx', right: '32rpx', width: '688rpx', height: '420rpx', borderRadius: '16rpx' }, }, { type: 'image', url: this.data.userInfo.avatarUrl || 'https://qiniu-image.qtshe.com/default-avatar20170707.png', css: { top: '404rpx', left: '328rpx', width: '96rpx', height: '96rpx', borderWidth: '6rpx', borderColor: '#FFF', borderRadius: '96rpx' } }, { type: 'text', text: this.data.userInfo.nickName || '青团子', css: { top: '532rpx', fontSize: '28rpx', left: '375rpx', align: 'center', color: '#3c3c3c' } }, { type: 'text', text: `邀请您参与助力活动`, css: { top: '576rpx', left: '375rpx', align: 'center', fontSize: '28rpx', color: '#3c3c3c' } }, { type: 'text', text: `宇宙最萌蓝牙耳机测评员`, css: { top: '644rpx', left: '375rpx', maxLines: 1, align: 'center', fontWeight: 'bold', fontSize: '44rpx', color: '#3c3c3c' } }, { type: 'image', url: 'https://qiniu-image.qtshe.com/20190605index.jpg', css: { top: '834rpx', left: '470rpx', width: '200rpx', height: '200rpx' } } ] } }) }, onImgErr(e) { wx.hideLoading() wx.showToast({ title: '生成分享图失败,请刷新页面重试' }) //通知外部绘制完成,重置isCanDraw为false this.triggerEvent('initData') }, onImgOK(e) { wx.hideLoading() // 展示分享图 wx.showShareImageMenu({ path: e.detail.path, fail: err => { console.log(err) } }) //通知外部绘制完成,重置isCanDraw为false this.triggerEvent('initData') } } }) [代码] 那么我们该如何引用呢? 首先json里引用我们封装好的组件share-box [代码]{ "usingComponents": { "share-box": "/components/shareBox/index" } } [代码] 以下示例为获取用户头像昵称后再生成图。 [代码]<button class="intro" bindtap="getUserInfo">点我生成分享图</button> <share-box isCanDraw="{{isCanDraw}}" userInfo="{{userInfo}}" bind:initData="handleClose" /> [代码] 调用的地方: [代码]const app = getApp() Page({ data: { isCanDraw: false }, // 组件内部关掉或者绘制完成需重置状态 handleClose() { this.setData({ isCanDraw: !this.data.isCanDraw }) }, getUserInfo(e) { wx.getUserProfile({ desc: "获取您的头像昵称信息", success: res => { const { userInfo = {} } = res this.setData({ userInfo, isCanDraw: true // 开始绘制海报图 }) }, fail: err => { console.log(err) } }) } }) [代码] 最后绘制分享图的自定义组件就完成啦~效果图如下: [图片] tips: 文字居中实现可以看下代码片段 文字换行实现(maxLines)只需要设置宽度,maxLines如果设置为1,那么超出一行将会展示为省略号 代码片段:https://developers.weixin.qq.com/s/J38pKsmK7Qw5 附上painter可视化编辑代码工具:点我直达,因为涉及网络图片,代码片段设置不了downloadFile合法域名,建议真机开启调试模式,开发者工具 详情里开启不校验合法域名进行代码片段的运行查看。 最后看下面大家评论问的较多的问题:downLoadFile合法域名在小程序后台 开发>开发设置里配置,域名为你图片的域名前缀 比如我文章里的图https://qiniu-image.qtshe.com/20190605index.jpg。配置域名时填写https://qiniu-image.qtshe.com即可。如果你图片cdn地址为https://aaa.com/xxx.png, 那你就配置https://aaa.com即可。
2022-01-20 - 关于小程序 扫描二维码跳转到体验版的尝试与成果
背景: 由于公司小程序经常有生成产品海报的功能,但是生成的小程序码微信扫码之后进的是正式版,如需要调试,就只能通过微信开发者工具,还需要源码在本地编译,对于测试来说十分麻烦,于是就开始思考,有什么方法可以解决。 [图片] 探索: 首先肯定是各种谷歌,得到的结果就是,各种不支持,但是这个需求还是有的,很多人都遇到了测试不便的问题,基本都是通过微信开发者工具来解决的, 但是,我还是不死心,既然没有轮子,那我就造一个! [图片] [图片] [图片] 造轮子: 开始分析需求,我需要扫码进入对应版本的小程序,那也不一定非要用微信的扫一扫,小程序本身也有扫一扫的api呀,既然这样需要实验一下, 小程序调用相机扫一扫是否可以扫描小程序码,能拿到什么! 搞起。。 [图片] 在原先的小程序项目里写一个单独的页面,通过调用 wx.scanCode(Object object) 方法,打开相机,扫小程序码,成功获取页面链接,激动! [图片] 下一步就是跳转一下的事了。最终的核心代码就这一段话。实现了用体验版小程序,扫生成的小程序码,进入对应页面的功能,测试小妹妹开心的不行。 这个只能打开自己所在的小程序码 // 允许从相机和相册扫码 wx.scanCode({ success (res) { console.log(res) wx.navigateTo({url: '/' +res.path}) } }) [图片]
2020-01-07 - 如何监听小程序中的手势事件(缩放、双击、长按、滑动、拖拽)
mina-touch [图片] [代码]mina-touch[代码],一个方便、轻量的 小程序 手势事件监听库 事件库部分逻辑参考[代码]alloyFinger[代码],在此做出声明和感谢 change log: 2019.03.10 优化监听和绘制逻辑,动画不卡顿 2019.03.12 修复第二次之后缩放闪烁的 bug,pinch 添加 singleZoom 参数 2020.12.13 更名 mina-touch 2020.12.27 上传 npm 库;优化使用方式;优化 README 支持的事件 支持 pinch 缩放 支持 rotate 旋转 支持 pressMove 拖拽 支持 doubleTap 双击 支持 swipe 滑动 支持 longTap 长按 支持 tap 按 支持 singleTap 单击 扫码体验 [图片] demo 展示 demo1:监听 pressMove 拖拽 手势 查看 demo 代码 [图片] [图片] demo2: 监听 pinch 缩放 和 rotate 旋转 手势 (已优化动画卡顿 bug) 查看 demo 代码 [图片] [图片] demo3: 测试监听双击事件 查看 demo 代码 [图片] [图片] demo4: 测试监听长按事件 查看 demo 代码 [图片] [图片] demo 代码 demo 代码地址 mina-tools-client/mina-touch 使用方法 大致可以分为 4 步: npm 安装 mina-touch,开发工具构建 npm 引入 mina-touch onload 实例化 mina-touch wxml 绑定实例 命令行 [代码]npm install mina-touch[代码] 安装完成后,开发工具构建 npm *.js [代码]import MinaTouch from 'mina-touch'; // 1. 引入mina-touch Page({ onLoad: function (options) { // 2. onload实例化mina-touch //会创建this.touch1指向实例对象 new MinaTouch(this, 'touch1', { // 监听事件的回调:multipointStart,doubleTap,longTap,pinch,pressMove,swipe等等 // 具体使用和参数请查看github-README(底部有github地址 }); }, }); [代码] NOTE: 多类型事件监听触发 setData 时,建议把数据合并,在 touchMove 中一起进行 setData ,以减少短时内多次 setData 引起的动画延迟和卡顿(参考 demo2) *.wxml 在 view 上绑定事件并对应: [代码]<view catchtouchstart="touch1.start" catchtouchmove="touch1.move" catchtouchend="touch1.end" catchtouchcancel="touch1.cancel" > </view> <!-- touchstart -> 实例对象名.start touchmove -> 实例对象名.move touchend -> 实例对象名.end touchcancel -> 实例对象名.cancel --> [代码] NOTE: 如果不影响业务,建议使用 catch 捕获事件,否则易造成监听动画卡顿(参考 demo2) 以上简单几步即可使用 mina-touch 手势库 😊😊😊 具体使用和参数请查看Github https://github.com/Yrobot/mina-touch 如果喜欢mina-touch的话,记得在github点个start哦!🌟🌟🌟
2021-06-24 - 小程序直播订阅直播组件subscribe组件是否支持自定义样式?
小程序直播订阅直播组件subscribe组件是否支持自定义样式?如果不支持有没有替代方案?
2020-03-09 - webview open.weixin.qq.com 链接打不开了
[图片] 如上图所示,小程序 webview 引入的网页是我们自己基于公众号开发的链接,其中用到了公众号的网页授权的功能,因为之前两周还正常能使用,最近调试小程序,就出现了这个问题。 目前在微信浏览器里打开正常,但在小程序webview里就打不开了,希望能得到解决方案
2018-04-11 - 小程序webview中使用微信网页授权,能否授权成功?
在小程序webview中,使用微信网页授权,可以授权成功并获得用户信息吗?
2020-02-24 - web-view不支持打开非业务域名open.weixin.qq.com请重新配置?
现在问题是:小程序跳转open.weixin.qq.com为域名的公众号页面,提示不支持打开非业务域名。这时候还需要配置业务域名吗?怎么正确跳转呢?现在打不开。
2020-02-29 - c# 解密手机{"填充无效,无法被移除。"} 怎么搞?
网上各种方法均试过,·同样问题
2019-08-26 - 小程序中使用腾讯视频插件播放视频可以去广告吗?
请问在小程序中使用腾讯视频插件播放视频可以去广告吗?广告时长大概有多久?
2019-12-26 - (14)腾讯视频插件
想要在自己的电商小程序中增加商品介绍视频,但自己搭建视频服务开发成本太大? 想要在餐饮服务中添加菜品视频,但苦于带宽成本过高? 想要在门票预订服务中用视频打动用户,但视频资质申请流程太长? 腾讯视频插件来帮你~ 今天,我们跟大家分享腾讯视频插件的故事。 腾讯视频插件提供了完整视频播放能力,方便开发者可以给用户提供更好的视频体验。 插件基于腾讯视频的CDN节点和成熟视频方案,可以做到为不同地点的用户提供更流畅的播放服务,更清晰的视频,更稳定的播放质量。只需要视频的vid,开发者即可直接在小程序内播放腾讯视频上的内容! 腾讯视频插件使用场景 场景一:电商类小程序 除了对商品的语言描述,实惠的价格,精美的图片,也需要生动直观、360度动态介绍商品,比单一的图片更能引起消费者的好感。 现在,在商品介绍里直接链入相关商品视频。比如,买衣服的电商小程序,可以把电视或电影中明星穿过的同款视频链入,在满足用户感官享受的同时,提升转化率。 场景二:文娱推荐类小程序 不局限于苍白的文字描述,推荐类小程序也可在小程序中添加电影视频、预告片,为用户带来完美的购票、观影体验。开发者无需独立开发视频功能,直接使用“腾讯视频”插件,即可实现视频播放功能。 [图片] 场景三:资讯类小程序 “腾讯视频”插件还可以是内容创作者的一大利器,以游戏攻略类小程序为例。小程序就可以直接用视频的形式展现,一方面清晰明了地展示攻略流程,同时也增加了用户在小程序内的停留时长,进一步引导用户做更多动作。 或者生活居家小技巧类的小程序,比如想教大家一种打结的方式,纯文字的形式即很难说清楚,又浪费内容运营者的时间,这时候直接使用插件链入视频,就能很快地教会大家,给予用户更好的内容体验。 轻松接入腾讯视频插件 “腾讯视频”提供了这么多的功能,使用起来也同样很方便: 1 在“小程序管理后台→设置→第三方服务→插件管理”中查找插件名称“腾讯视频”,并申请使用。 [图片] 2 参考详情页中的 [开发文档],在小程序代码中使用插件。 了解完“腾讯视频”插件后,还想看看其他小程序是如何实际运用的?一起来体验一下 腾讯+ ! [图片] 页面视频服务是由腾讯视频插件提供
2018-08-17 - 通过小程序分享链接打开页面,左上角小房子图标未出现?
分享小程序页面(非首页,是使用web-view组件的页面)给好友,通过分享链接打开,无返回首页的小房子图标。 1、华为荣耀v20(Android9,微信版本7.0.8)[图片] 熄屏后解锁再看,发现小图标出现[图片]2、iPhone XS(ios13.1.3,微信版本7.0.5) 不论是刚打开链接,还是熄屏后解锁再看,均无小房子图标。 麻烦官方解答一下,是什么原因?
2019-11-10 - 关于小程序 iphone11获取设备型号问题?
我们适配苹果刘海屏都是用过手机型号判断是否包含iphone x ,那么iphone11获取的设备类型是不是iphone 11啊?
2019-09-20 - 已解决。小程序获取手机号时,checkSession通过但是获取手机号解密失败
一开始我的处理方式是在页面直接用checkSession,我的session_key是在index.js登录的时候保存到storage,这里check回调的是“success”。 但是把此时storage里面的session_key结合授权按钮的参数去进行解密是失败的,需要在当前的Page再登陆一次才能成功。 不推荐把session_key存放在缓存。所以以上做法直接跳过。 最后参考了一个朋友的做法,在Page onLoad的时候执行一次wx.login(),然后拿到新的session_key,再用此时的新key去解密就通了。或者改为请求解密之前执行一次登录,据说出问题的概率还是很大 结尾补充:最后一种方法还有个问题要考虑,就是最好执行获取手机号之前再checkSession一下(尽管没啥用)。 问题源头,由于这个函数在校验session_key的时候,无论是过期的key还是新的key都是success,所以有了之后一些列的问题,session_key的状态没法把控 [代码]Page({ data: { currentSessionKey: null }, onLoad: function(options) { /* do something*/ const here = this; // 执行登录确保session_key在线 wx.login({ success(res) { if (res.code) { // call()是我自己基于wx.request封装的一个请求函数工具,这里通过后端发送登录请求获得openid const data = call(userLogin, { code: res.code }); data.then(obj => { if (!obj.error) { here.setData({ currentSessionKey: obj.result.session_key }) } }); } }, fail(error) { throw error; } }); }, // 点击按钮获取手机号权限并解析<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" bindtap='doMyAction'>获取手机号</button> getPhoneNumber: function (e) { const { encryptedData, iv } = e.detail; const options = { encryptedData: encryptedData, iv: iv, sessionKey: this.data.currentSessionKey }; here.doGetPhone(options); }, doMyAction: function() { // 还可以做一些事情 }, doGetPhone: function (options) { const { sessionKey, encryptedData, iv } = options; const here = this; // 向服务器请求解密 wx.request({ // 这里是解密用的接口 url: 'https://xxx.com/python/decrypt', method: 'POST', data: { sessionKey: sessionKey, encryptedData: encryptedData, iv: iv }, success(res) { // 最终获取到用户数据,国家代号前缀、不带前缀的手机号。默认是不带前缀 const { countryCode, purePhoneNumber } = res.data; here.pageForward(countryCode, purePhoneNumber); }, fail(error) { console.log(error); here.pageForward(); } }) }, pageForward: function(countryCode, purePhoneNumber) { // 获取成功后我是跳转到另一个页面 wx.navigateTo({ url: `/pages/person/index?phone=${purePhoneNumber}` }) } }) [代码]
2020-09-15 - 关于微信安卓端网页字体适配的通知
为了提供给用户更好的阅读体验,微信安卓版 7.0.10 版本起,网页的字体会跟随微信设置里的字体大小更改而变化。 若调整字体变大或变小后,部分未适配网页的排版会出现显示错乱,建议未进行适配的开发者尽快完成对“ 字体大小” 的适配。 查看网页在字体不同大小下展示效果的方法: 方法1:"设置">"通用">“字体大小">进行字体大小修改后查看对应网页显示效果。 方法2:在微信内访问对应网页右上角”…">底部菜单栏选择调整字体">进行字体大小修改后查看对应网页显示效果。 另外,对于现有的显示问题,我们提供以下方案让开发者临时将字体还原标准大小。同时,开发者可以在页面中提示用户在右上角”…”更多菜单中修改字体到合适的大小。 下列方案可以将字体还原标准大小,但我们仍然建议后续做字体适配来提高用户的阅读体验。 『字体还原标准大小』方案: 我们提供了一个 JSAPI 用于设置字体大小,只需将字体大小等级设置为 2 (标准)即可,代码示例如下: document.addEventListener("WeixinJSBridgeReady", function () { WeixinJSBridge.invoke("setFontSizeCallback", { fontSize: '2' }); }, false); 此外,若页面是用 rem 单位进行排版的(目前该做法更容易导致页面不可用),可以反向重置 font-size 的数值达到还原字体标准大小的目的,此方法在效果上也比较理想。代码示例如下: // 以下代码思路来源网络。同时代码放在 body 标签开头位置效果最佳 var $dom = document.createElement('div'); $dom.style = 'font-size: 10px'; document.body.appendChild($dom); // 计算出放大后的字体 var scaledFontSize = parseInt(window.getComputedStyle($dom, null).getPropertyValue('font-size')); document.body.appendChild($dom); // 计算原字体和放大后字体的比例 var scaleFactor = 10 / scaledFontSize; // 取 html 元素的字体大小 var originRootFontSize = parseInt(window.getComputedStyle(document.documentElement, null).getPropertyValue('font-size')); // 由于设置 font-size 后实际会变大,故 font-size 需设置为更小一级 document.documentElement.style.fontSize = originRootFontSize * scaleFactor * scaleFactor + 'px';
2020-01-14 - 订阅消息如果选择选择‘总是保持以上选择,"不再询问"后的设置问题
目前是选择‘总是保持以上选择,"不再询问"后,可以在设置中开启或拒绝接收,但不会再次拉起授权弹窗
2019-10-18 - iPhone8 createAnimation 没有动画,直接就过去了
- 当前 Bug 的表现(可附上截图) 在ide 中 表现正常,在真机(iPhone8)上 没有动画效果(一下就滑过去了) - 预期表现 动画效果是平滑的 - 复现路径 左右滑动 - 提供一个最简复现 Demo
2019-01-31 - IOS12 上动画无效果
IOS12 上动画无效果 let animimate = wx.createAnimation({ duration: 500, timingFunction: 'ease', }) animimate.scale3d(2,2,2).step() this.setData({ animimate: animimate.export() })
2018-07-11 - 「笔记」订阅消息体验踩坑
前言 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 - 小程序模板消息能力调整通知
小程序模板消息能力在帮助小程序实现服务闭环的同时,也存在一些问题,如: 1. 部分开发者在用户无预期或未进行服务的情况下发送与用户无关的消息,对用户产生了骚扰; 2. 模板消息需在用户访问小程序后的 7 天内下发,不能满足部分业务的时间要求。 为提升小程序模板消息能力的使用体验,我们对模板消息的下发条件进行了调整,由用户自主订阅所需消息。 一次性订阅消息 一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 [图片] (一次性订阅示例) 长期性订阅消息 一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。 调整计划 小程序订阅消息接口上线后,原先的模板消息接口将停止使用,详情如下: 1. 开发者可登录小程序管理后台开启订阅消息功能,接口开发可参考文档:《小程序订阅消息》 2. 开发者使用订阅消息能力时,需遵循运营规范,不可用奖励或其它形式强制用户订阅,不可下发与用户预期不符或违反国家法律法规的内容。具体可参考文档:《小程序订阅消息接口运营规范》 3. 原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法使用此接口发送模板消息,请各位开发者注意及时调整接口。 微信团队 2019.10.12
2019-10-13