uni-app uni.share分享功能在安卓上二次分享没有效果

uni-app uni.share分享功能在安卓上二次分享没有效果

开发环境 版本号 项目创建方式
Windows 21H1 HBuilderX

示例代码:

const thirdShare = (shareParam) => {
if (shareParam.provider === 'qq') {
delete shareParam.scene
}
//微博分享图片仅支持本地路径
if (shareParam.provider === 'sinaweibo') {
downloadFile(shareParam).then(res => {
if (shareParam.serviceType == 1) {
shareParam.imageUrl = ''
} else {
shareParam.imageUrl = res.tempFilePath
}
shareParam.summary = shareParam.title + ',' + shareParam.summary
console.log("App拉起分享" + JSON.stringify(shareParam))
return uniShare(shareParam)
})
} else {
console.log("App拉起分享" + JSON.stringify(shareParam))
return uniShare(shareParam)
}
}

操作步骤:

首页-点击作品进入详情-点击分享-选择微信分享-弹出微信-分享-返回App-继续点击分享

预期结果:

可以分享,再次弹出微信界面

实际结果:

没有反应

bug描述:

uni.share分享,安卓二次分享没有效果,猜测可能与video标签层级有关,没有video情况可以二次分享,页面中存在video标签的时候只能分享一次,再次分享没有效果


更多关于uni-app uni.share分享功能在安卓上二次分享没有效果的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

本地打包 app\src\main\assets\data\dcloud_properties.xml 把里面不用的分享项 注释掉 重新打包就可以了
<feature name="Share" value="io.dcloud.share.ShareFeatureImpl">

<module name="Weixin" value="io.dcloud.share.mm.WeiXinApiManager"/> </feature>

更多关于uni-app uni.share分享功能在安卓上二次分享没有效果的实战教程也可以访问 https://www.itying.com/category-93-b0.html


用你提供的apk测试分享正常 产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,你需要排查出来具体你哪个页面,甚至哪一行导致的。找出来具体原因后提供一个能复现你描述的bug的最小化demo (上传附件),让我们及时定位问题,及时修复。

根据你的描述,这个问题很可能与uni-app在Android平台上的页面生命周期和组件层级管理有关。当页面中存在video组件时,它可能影响了分享功能的正常调用,尤其是在连续分享的场景下。

从技术层面分析,video组件在Android上属于原生组件,其层级较高,可能会覆盖部分H5页面元素。当你第一次分享后返回App,页面状态可能没有完全恢复,导致第二次调用uni.share时无法正常触发分享界面。

建议尝试以下方案:

  1. 延迟分享调用:在第二次分享前加入短暂延迟,确保页面完全恢复。

    setTimeout(() => {
      uniShare(shareParam);
    }, 100);
    
  2. 检查页面生命周期:在onShow生命周期中确认分享功能是否可用。

  3. 临时隐藏video组件:在分享前将video组件设置为不可见,分享后再恢复。

    <video v-if="!isSharing" ...></video>
回到顶部