项目要求在景点打卡之后唤起订阅消息(每次发布打卡都唤起一次)

效果图:

开发步骤:

1:微信公众平台登录你的小程序后台。
2:选择“订阅消息”。
3:在公共模板库中选择模板并提交选用,在“我的模板”中就可以看见你的模板了。

注意:

uni-app开发调用:uni.requestSubscribeMessage

微信开发调用:wx.requestSubscribeMessage 唤起订阅消息弹窗

uni.uploadFile({
	url: oskey.data.host + '/',
	filePath: item.url,
	name: 'file',
	formData: {
		key: oskey.data.dir + src,
		policy: oskey.data.policy,
		OSSAccessKeyId: oskey.data.accessid,
		signature: oskey.data.signature,
	},
	success: (res) => {
		if (res.statusCode == 204) {
			uni.requestSubscribeMessage({
				tmplIds: ['JMQ_2q2GYl6vp2rZQXD65pqy99TUUVG5Z-h6nI'],
				complete: (res) => {

					onsole.log(res,'999');
					
				}
			})
			
		}
								
	},
	fail: err => {
		reject(err)
	}
});

这是我直接在发布成功之后调用唤起弹窗会报错:fail can only be invoked by user TAP gesture

原因据材料显示是微信版本过低,低版本订阅消息必须在点击事件中触发,所以我把唤起订阅消息写在了提示弹窗的点击事件中

解决方法:

uni.uploadFile({
	url: oskey.data.host + '/',
	filePath: item.url,
	name: 'file',
	formData: {
		key: oskey.data.dir + src,
		policy: oskey.data.policy,
		OSSAccessKeyId: oskey.data.accessid,
		signature: oskey.data.signature,
	},
	success: (res) => {
		if (res.statusCode == 204) {
			this.popupindow()   //唤起弹窗事件
			
		}
								
	},
	fail: err => {
		reject(err)
	}
});


popupWindow(){
    uni.showModal({
		title: '温馨提示',
		content: '打卡有奖活动截止日将向您发送中奖通知',
		confirmText: "同意",
		cancelText: "拒绝",
		success: function(res) {
			if (res.confirm) {
				
				uni.requestSubscribeMessage({
					tmplIds: ['JMQ_2q2GYl6WxQXD65pqy99TUUVG5Z-h6nI'],
					complete: (res) => {
						console.log(res,'999');
					
					}
				})
			} else if (res.cancel) {
				
				///显示第二个弹说明一下
				wx.showModal({
					title: '温馨提示',
					content: '拒绝后您将无法收到中奖消息',
					confirmText: "知道了",
					showCancel: false,
					success: function(res) {
										
						
					}
				});
			}
		}
	})

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐