- 长期订阅模板库中没有模板也不让申请模板怎么弄?
今天做长期订阅,因为是做汽车路况项目的 所以有长期订阅,但是选择模板的时候发现里面没有模板,但是没关系 可以申请啊,后来找来找去也没发现申请模板在哪? 里面没有模板 也不让申请 这是不让我用的节奏吗? [图片]
2019-10-21 - 微信小程序订阅消息
功能介绍消息能力是小程序能力中的重要组成,腾讯为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。 订阅消息推送位置:服务通知 订阅消息下发条件:用户自主订阅 订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面消息类型1. 一次性订阅消息 一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 2. 长期订阅消息 一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。 发送订阅消息步骤:1. 添加订阅消息模板,获取模板id 登录微信公众平台添加订阅消息模板,获取模板id. [图片] 2. 获取下发权限: wx.requestSubscribeMessage(Object object) 注意事项:此部分代码需要按钮触发,不可放在onload()或onshow()中 wx.requestSubscribeMessage({ tmplIds: ['xxxxxxxxxxxxxxxxxxxxx'],//这里填写模板id success (res) { console.log("res--->",res) }, fail:err=>{ console.log("err---",err) } }) [图片] 3. 调用接口下发订阅消息: subscribeMessage.send 注意事项:用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。 https调用请求地址: POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN 官网的请求参数如下: [图片] 必填参数说明 access_token ------接口调用凭证注意事项:获取接口凭证:auth.getAccessToken(发送消息需要access_token参数,access_token的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token失效) wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential', method: 'GET', data: { "appid": 'xxxxxx', //小程序appid "secret": 'xxxxxxx' //小程序密钥 }, success: res => { console.log("res--",res) this.data.accessToken=res.data.access_token }, fail: (e) =>{ console.error("err--",e); }, complete: (e) =>{ console.log("c--",e); } }) data ------板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } } 注意事项:发送消息的模板内容:key值要与模板中的一致 以下模板的data值: { "date1": {"value": "2020-01-01 00:00" },"date2": { "value": "2020-01-01 00:00"}, "thing3": { "value": "升级期间暂停服务,感谢你的理解。" },"time4": { "value": "2020-01-01 17:38:26" } }, [图片] 发送订阅消息代码 wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + this.data.accessToken, method: 'POST', data: { "touser": 'xxxxxxxxxx', //接收者(用户)的 openid "template_id": 'xxxxxxxxxx', //所需下发的订阅模板id "page": '/pages/index/index' || '', //点击模板卡片后的跳转页面 "data": { "date1": { "value": "2020-01-01 00:00" }, "date2": { "value": "2020-01-01 00:00" }, "thing3": { "value": "升级期间暂停服务,感谢你的理解。" }, "time4": { "value": "2020-01-01 17:38:26" } }, //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } } "miniprogram_state": "developer" //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版 }, success: (res) => { console.log(res.data); }, fail: (e) => { console.errore); } }) 发送订阅消息成功,手机截图如下 [图片] 以上就是微信订阅消息设置发送的全过程。
2021-11-30 - 如何实现快速生成朋友圈海报分享图
由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 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