clickMe: function(event) {
console.log("进来点击事件了");
const res1 = ks.requestSubscribeMessage({
tmplIds: ["ZwRAPpUOX0NTu-ddwBSRk", "Of1BwSwFRguaM6eFSKu_z"]
});
if (res1.YOUR_TEMPLATE_ID === "ACCEPT") {
console.log("同意了订阅");
} else {
console.log("拒绝了订阅");
}
return false;
},
- 发布:2024-10-30 14:56
- 更新:2025-10-22 20:40
- 阅读:323
产品分类: uniapp/小程序/快手
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX类型: 正式
HBuilderX版本号: 4.24
第三方开发者工具版本号: 1.58
基础库版本号: 未知
项目创建方式: HBuilderX
示例代码:
操作步骤:
点击按钮绑定的点击事件,进去点击事件方法了,但是快手那边报错了
点击按钮绑定的点击事件,进去点击事件方法了,但是快手那边报错了
预期结果:
点击按钮绑定的点击事件,进去点击事件方法了,订阅成功或失败(失败给出具体错误提示)
点击按钮绑定的点击事件,进去点击事件方法了,订阅成功或失败(失败给出具体错误提示)
实际结果:
点击按钮绑定的点击事件,进去点击事件方法了,但是快手那边报错了
点击按钮绑定的点击事件,进去点击事件方法了,但是快手那边报错了
bug描述:
详情在快手问答平台 https://developers.kuaishou.com/topic?bizType=miniprogram&tid=25508&
最佳回复
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
更新:10 月 22 日复测,目前 uni-app 是将方法进行包装,单和这个 api 要求通过 tap 操作完成有一定的冲突,你可参考使用 showModal 来完成,也你可按照下面方式进行兼容开发。
这样改动最小,button 中使用字符串访问 sub,再 $scope 中挂在自定义的方法。
<template>
<view class="content">
<button bindtap='sub'>订阅</button>
</view>
</template>
<script>
export default {
onLoad() {
this.$scope.sub = this.subscription
},
methods: {
subscription() {
console.log('进来点击事件了')
const res1 = uni.requestSubscribeMessage({
tmplIds: ["ZwRAPpUOX0NTu-ddwBSRk", "Of1BwSwFRguaM6eFSKu_z"]
});
console.log('requestSubscribeMessage', res1)
},
}
}
</script>
更新:
经过搜索这个问题,在快手社区里发现里一些类似的错误报错。观察文档里订阅消息官方有一条要求需要注意
tip: 调用订阅必须发生在用户tap操作或者showModal的confirm操作之后
经过我测试 showModal 在弹窗里 confrim 之后调用订阅信息正常。经过测试使用 button 直接订阅有问题,可能需要前置的条件,比如用户在某个订阅条件下才能订阅
uni.showModal({
title: '提示',
content: '要订阅了',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定');
const res1 = ks.requestSubscribeMessage({
tmplIds: ["", ""],
success(res) {
console.log('ok',res)
},
fail() {
console.log('fail')
}
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
})
我看看这个问题,你把复现压缩包在这个帖子里上传一下,我没权限下载你在快手社区里提供的 rar 压缩包.
看了快手问答的帖子,方法应该在methods里面啊,不能和onload平级。
-
y***@qq.com (作者)
在methods里面没错,也进来这个方法了,但是会报错。试过了快手原生的,就没有报错,而且原生的那个点击事件方法跟methods,onload是平级的
2024-10-30 17:40
y***@qq.com (作者)
上传了,在下面
2024-10-31 15:17
y***@qq.com (作者)
运行unpackage\dist\dev\mp-kuaishou在快手开发者工具就能复现
2024-10-31 15:21
y***@qq.com (作者)
看了没?咋样了
2024-11-01 11:23
DCloud_UNI_OttoJi
回复 y***@qq.com: 可能是快手有限制,经过我测试使用 showModal 在 confirm 里可以正常订阅信息
2024-11-01 14:40
y***@qq.com (作者)
回复 DCloud_UNI_OttoJi: showModal 在 confirm 里可以正常订阅信息 是可以,有没有办法解决click事件直接调ks.requestSubscribeMessage并且不报错,这样比还需要弹框确认的体验效果更好点
2024-11-01 17:02
y***@qq.com (作者)
回复 DCloud_UNI_OttoJi: 可能需要前置的条件 button模式下,测试出来这个前置的条件是什么没? 直接用快手开发者工具写了个原生button demo,又是成功的。uniapp打包编译后的就是会有问题
2024-11-01 17:20
DCloud_UNI_OttoJi
回复 y***@qq.com: 不阻塞开发就行,直接使用 button 的写法还得在再看看
2024-11-01 17:49