- 小程序webview访问公众号文章提示非业务域名
排查方式如下 1:小程序和公众号需要进行绑定 2:需要是https请求 3:业务域名设置了不一定参数里就是业务域名的地址,若配置的基本都是公众号文章地址,这里的业务域名是不需要额外设置的 4:参数需要进行encode编码 分享案例 1:若遇到非业务域名问题,请先固定一篇文章进行测试,打印代码 https://mp.weixin.qq.com/s?__biz=xxxxxxxxxx==&mid=xxxxxxxxxx&idx=1&sn=xxxxxxxxxxxx&chksm=c0457762f732fe745f1bf8b1f99fa7a535335772eb6a104c1cf026ea063e16ec157465894b52&token=246279511&lang=zh_CN#rd 2:打开代码片段,放入打印出来的代码,编译查看是否提示参数错误 [图片] 3:把打印出来的代码进行encodeURIComponent转码 https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkwMDE4MzU5OQ%3D%3D%26mid%3D2247504930%26idx%3D1%26sn%3D8d98cf8616cf11134620508082bdf1eb%26chksm%3Dc0457762f732fe745f1bf8b1f99fa7axxxxxxxxxeb6a104c1cf026ea063e16ec157465894b52%26token%xxxxxxxxxxxxx%26lang%3Dzh_CN%23rd 4:开发者工具-->添加编译模式-->启动参数-->url=encodeURIComponent转码后的请求,然后编译下 [图片] 附上事例中的代码片段:https://developers.weixin.qq.com/s/CdlD8vmP7AxR 欢迎社区开发者留下自己解决非业务域名报错的步骤 !!!
2022-03-04 - webView报错the permission value is offline verifying
the permission value is offline verifying这个错误是因为config没有正确执行,或者是调用的JSAPI没有传入config的jsApiList参数中。建议按如下顺序检查: 确认config正确通过。 如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。 确认config的jsApiList参数包含了这个JSAPI。 可参考:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#%E9%99%84%E5%BD%951-JS-SDK%E4%BD%BF%E7%94%A8%E6%9D%83%E9%99%90%E7%AD%BE%E5%90%8D%E7%AE%97%E6%B3%95
2019-09-24 - JSAPI支付返回: JSAPI缺少参数total_fee
请根据以下几点排查问题: 1)package参数格式错误,package参数格式应该是这样: package:"prepay_id=wx201410272009395522657a690389285100" 2)package参数没有获取,返回null。 3)请检查预支付会话标识prepay_id是否已失效 4)请求的appid与下单接口的appid是否一致 5)微信支付金额为“分”,不能有小数点 6)预支付ID为空(1、金额为空 2、订单编号重复 3、订单编号为空) 该条内容由「社区Memory」提供,官方审核发布
2021-03-12 - 需求:引用文件支持绝对路径
- 需求的场景描述(希望解决的问题) js中import,require wxml中import和include wxss中的@import 目前只能使用相对路径,导致经常要写../../.../../这种长路径,十分不友好 - 希望提供的能力 类似webpack的resolve.alias,可以给路径加别名; 或者用某段特定的字符串指代项目根目录,也能避免../../.../../的坑
2019-04-04 - 组件的内部数据如何查看?
- 页面里面引入了一个自定义组件,但是在AppData里面无法查看到Component的内部数据,只能看到Page的。 - 后续是否能把查看Component内部数据的功能加上?
2019-05-27 - 小程序内用户帐号登录规范调整和优化建议
为更好地保护用户隐私信息,优化用户体验,平台将会对小程序内的帐号登录功能进行规范。本公告所称“帐号登录功能”是指开发者在小程序内提供帐号登录功能,包括但不限于进行的手机号登录,getuserinfo形式登录、邮箱登录等形式。具体规范要求如下: 1.服务范围开放的小程序 对于用户注册流程是对外开放、无需验证特定范围用户,且注册后即可提供线上服务的小程序,不得在用户清楚知悉、了解小程序的功能之前,要求用户进行帐号登录。 包括但不限于打开小程序后立即跳转提示登录或打开小程序后立即强制弹窗要求登录,都属于违反上述要求的情况; 以下反面示例,在用户打开小程序后立刻弹出授权登录页; [图片] 建议修改为如下正面示例形式:在体验小程序功能后,用户主动点击登录按钮后触发登录流程,且为用户提供暂不登录选项。 [图片] 2.服务范围特定的小程序 对于客观上服务范围特定、未完全开放用户注册,需通过更多方式完成身份验证后才能提供服务的小程序,可以直接引导用户进行帐号登录。例如为学校系统、员工系统、社保卡信息系统等提供服务的小程序; 下图案例为正面示例:校友管理系统,符合规范要求。 [图片] 3.仅提供注册功能小程序 对于线上仅提供注册功能,其他服务均需以其他方式提供的小程序,可在说明要求使用帐号登录功能的原因后,引导用户进行帐号注册或帐号登录。如ETC注册申请、信用卡申请; 如下反面示例,用户在进入时未获取任何信息,首页直接强制弹框要求登录注册ETC,这是不符合规范的。 [图片] 建议修改为如下正面示例所示形式:允许在首页说明注册功能后,提供登录或注册按钮供用户主动选择点击登录。 [图片] 4.提供可取消或拒绝登录选项 任何小程序调用帐号登录功能,应当为用户清晰提供可取消或拒绝的选项按钮,不得以任何方式强制用户进行帐号登录。 如下图所示反面示例,到需要登录环节直接跳转登录页面,用户只能选择点击登录或退出小程序,这不符合登录规范要求。 [图片] 建议修改为下图正面示例形式,在需帐号登录的环节,为用户主动点击登录,并提供可取消按钮,不强制登录。 [图片] 针对以上登录规范要求,平台希望开发者们能相应地调整小程序的帐号登录功能。如未满足登录规范要求,从2019年9月1日开始,平台将会在后续的代码审核环节进行规则提示和修改要求反馈。
2019-07-20 - 如何实现快速生成朋友圈海报分享图
由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 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 - 小程序微信登录流程设计建议
为帮助开发者优化小程序内用户登录体验,平台将逐步回收线上版本使用 wx.getUserInfo 接口直接弹出授权框的能力,调整详见《小程序与小游戏获取用户信息接口调整》。 以下为设计小程序内微信登录流程的几点建议: 01 在必须用到登录信息的环节引导用户登录 在用户必须登录时才引导用户登录(如:购买前需要获取会员信息,用于同步积分数据),而不是用户一进入小程序就弹窗要求用户授权。 在用户对当前小程序服务还未了解时,弹框获取用户信息,会使得一部分用户点击“拒绝”按钮,影响登录转化率。 [图片] 02 清晰、准确地引导用户登录 在登录页面中,清晰、准确地告知用户当前操作是登录,说明获取登录信息的目的(如:用于同步会员积分数据等) [图片] 03 不强制用户必须使用微信登录 除微信登录外,建议开发者提供游客登录模式,保证用户在拒绝授权头像和昵称信息后仍可使用小程序。 如要求必须授权头像昵称等信息才能继续使用小程序,会导致某些用户放弃使用该小程序。 [图片] 04 设计上兼容登录弹窗 如需获取用户头像、昵称等信息,会弹出登录弹窗引导用户授权,请开发者在交互设计上兼容弹窗,避免出现多个弹窗叠加、重复提示等不好的体验。
2018-06-07