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>

相关链接:

项目属性 信息
产品分类 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

16 回复

感谢反馈,问题已复现,已加分。
可以把组合式改为选项式来临时饶过这个问题,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

解决方案:

  1. 使用 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>
  1. 或者改用 Options API 写法:
<script lang="ts">
export default {
    onReady() {
        this.$mp.page.onUploadDouyinVideo = function (uploadOptions) {
            console.log('onUploadDouyinVideoOptions: ', uploadOptions)
        }
    }
}
</script>
回到顶部