uni-app 抖音小程序onUploadDouyinVideo无法触发
uni-app 抖音小程序onUploadDouyinVideo无法触发
示例代码:
<template>
<view class="container">
<button open-type="share" data-channel="video">拍视频</button>
</view>
</template>
<script lang="ts" setup>
import { onReady } from '@dcloudio/uni-app'
onReady(() => {
this.$mp.page.onUploadDouyinVideo = function (uploadOptions) {
console.log('onUploadDouyinVideoOptions: ', uploadOptions)
}
})
</script>
操作步骤:
- 运行上述代码,点击按钮拍视频,上传视频。
预期结果:
- onUploadDouyinVideo方法被调用控制台输出onUploadDouyinVideoOptions相关信息。
实际结果:
- 控制台不报错,但也没有输出信息(方法没被调用)
bug描述:
<script lang="ts" setup>
import { onShow, onReady, onShareAppMessage } from '@dcloudio/uni-app'
onReady(() => {
this.$mp.page.onUploadDouyinVideo = function (uploadOptions) {
console.log('onUploadDouyinVideoOptions: ', uploadOptions)
}
})
</script>
- 运行结果,控制台不报错,但是拍抖音后onUploadDouyinVideo方法没有触发。
- 抖音,上传视频api接口
相关链接:
| 项目属性 | 信息 |
|---|---|
| 产品分类 | uniapp/小程序/抖音 |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | 11 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.76 |
| 第三方开发者工具版本号 | 4.4.5 |
| 基础库版本号 | 3.81.0.8 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 抖音小程序onUploadDouyinVideo无法触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html
感谢反馈,问题已复现,已加分。
可以把组合式改为选项式来临时饶过这个问题,onUploadDouyinVideo 和 methods 一个层级。
更多关于uni-app 抖音小程序onUploadDouyinVideo无法触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可以给个简单示例看一下吗? 我尝试这样写也没能触发
<script lang="ts"> export default { data() { return { } }, methods: { }, onUploadDouyinVideo(option) { console.log("onUploadDouyinVideo: "+option) } } </script>你配置 publishVideoHookPriorityList 了嘛?
设置了也还是不行
回复 蒙古野驴: 基础库满足要求吗?同样的功能你试试原生抖音小程序有没有问题
回复 DCloud_UNI_JBB: 原生小程序就可以
回复 蒙古野驴: 发一下你的原生测试代码和uniapp的测试代码
回复 DCloud_UNI_JBB: 看下面的评论,有发测试代码
@DCloud_UNI_JBB ,附件是测试代码,都是新创建的空白应用只有测试代码
你的uniapp测试工程并没有在 manifest.json 中添加
“publishVideoHookPriorityList”: [
“onUploadDouyinVideo”,
“onShareAppMessage”
]
加上了我这边测试选项式能正常触发,测试结果在附件中,真机测试也没有问题
感谢大佬,我回去再看下
回复 蒙古野驴: 组合式的话目前暂不支持,近期会发版修复,到时候我会在评论区回复
回复 DCloud_UNI_JBB: 好的,感谢大佬
回复 DCloud_UNI_JBB: 大佬,大概什么时候能修复呀?
回复 蒙古野驴: 要等发版,发版之后我会在评论区留言
在 <script setup> 语法中无法直接使用 this,这是导致 onUploadDouyinVideo 无法触发的主要原因。<script setup> 是编译时语法糖,组件实例不会暴露给 this。
解决方案:
- 使用
getCurrentInstance()获取页面实例:
<script lang="ts" setup>
import { onReady, getCurrentInstance } from '@dcloudio/uni-app'
onReady(() => {
const instance = getCurrentInstance()
instance?.$mp?.page?.onUploadDouyinVideo = function (uploadOptions) {
console.log('onUploadDouyinVideoOptions: ', uploadOptions)
}
})
</script>
- 或者改用 Options API 写法:
<script lang="ts">
export default {
onReady() {
this.$mp.page.onUploadDouyinVideo = function (uploadOptions) {
console.log('onUploadDouyinVideoOptions: ', uploadOptions)
}
}
}
</script>

