uni-app uni.share回调 页面显示异常

uni-app uni.share回调 页面显示异常

产品分类:uni小程序SDK
手机系统:Android
手机系统版本号:Android 10
手机厂商:华为
手机机型:P30 pro
页面类型:vue
SDK版本号:3.4.7

开发环境 版本号 项目创建方式
Android 10

操作步骤:

  • 变更SDK包内Demo包名
  • 配置微信配置信息
  • 点击首页<启动小程序直达二级页面>
  • <接口 - 分享>
  • 调用微信分享返回

预期结果:

  • 微信返回时无透明页面

实际结果:

  • 微信返回时出现透明页面

bug描述:

小程序调用uni.share可以正常分享内容,但无法收到成功或失败回调

且从微信回返后,小程序上方存在一个透明的页面 必须使用原生回退按钮才能关闭

我将SDK包内的Demo 配置了微信的appId信息 以及更改Demo包名后 使用其中的直达二级页面菜单内的分享,同样出现了这个问题 可以分享但是回退后有一个透明页面必须使用回退按钮进行关闭

以下是拦截unimp所获取到的日志:

2022-05-17 19:04:21.887 2040-2536/? I/WindowManager: Animation done in AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}} isHidden:true hiddenRequested:true
2022-05-17 19:04:21.916 788-1012/? W/BufferQueueProducer: [com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0#0]:1390: disconnect: not connected (req=1)
2022-05-17 19:04:21.938 2040-5452/? I/WindowManager: notifyAppStopped: AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}
2022-05-17 19:04:21.938 2040-5452/? E/WindowManager: win=Window{6392b59 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0} destroySurfaces: appStopped=true win.mWindowRemovalAllowed=false win.mRemoveOnExit=false
2022-05-17 19:04:23.221 2040-5452/? I/ActivityTaskManager: Making visible and scheduling visibility: ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}
2022-05-17 19:04:23.255 26618-26618/? I/ActivityThread: Handle window ActivityRecord{c5b890b token=android.os.BinderProxy[@a059215](/user/a059215) {com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0}} visibility: true
2022-05-17 19:04:23.266 2040-2536/? I/WindowManager: Check opening app=AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}}: allDrawn=false startingDisplayed=false startingMoved=false isRelaunching()=false startingWindow=null
2022-05-17 19:04:23.268 2040-2536/? I/WindowManager: Check opening app=AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}}: allDrawn=false startingDisplayed=false startingMoved=false isRelaunching()=false startingWindow=null
2022-05-17 19:04:23.278 2040-2536/? I/WindowManager: Check opening app=AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}}: allDrawn=false startingDisplayed=false startingMoved=false isRelaunching()=false startingWindow=null
2022-05-17 19:04:23.283 2040-4445/? I/WindowManager: Check opening app=AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}}: allDrawn=false startingDisplayed=false startingMoved=false isRelaunching()=false startingWindow=null
2022-05-17 19:04:23.313 2040-2536/? I/WindowManager: Check opening app=AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}}: allDrawn=true startingDisplayed=false startingMoved=false isRelaunching()=false startingWindow=null
2022-05-17 19:04:23.319 2040-2536/? D/HwWindowManagerServiceEx: is app exit to launcher info: transit = 9, app = AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}}, window = Window{6392b59 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0}, mClosingApps = {AppWindowToken{5ff5dc9 token=Token{61831cb ActivityRecord{61df344 u0 com.tencent.mm/.ui.transmit.SelectConversationUI t3700}}}}, topOpeningApp = AppWindowToken{62dec09 token=Token{6417ee0 ActivityRecord{5bdf209 u0 com.eyimu.eConnect/io.dcloud.ProcessMediator t3696}}}, mExitIconBitmap = null, mExitIconHeight = -1, mExitIconWidth = -1
2022-05-17 19:04:23.319 2040-2536/? V/WindowManager: commitVisibility: AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}}: hidden=false hiddenRequested=false
2022-05-17 19:04:23.319 2040-2536/? I/WindowManager: Animation done in AppWindowToken{63a1409 token=Token{61032bd ActivityRecord{5e29b83 u0 com.eyimu.eConnect/io.dcloud.feature.sdk.multi.DCUniMPTopActivity0 t3696}}} isHidden:false hiddenRequested:false

更多关于uni-app uni.share回调 页面显示异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

apk无法上传附件,我在uniQQ群里 可以找我要打包后的问题apk

更多关于uni-app uni.share回调 页面显示异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


大佬,这个问题解决了吗

在使用 uni.share 进行分享时,如果遇到页面显示异常的问题,可能是由于以下几个原因导致的。以下是一些常见的排查和解决方法:

1. 回调函数未正确执行

  • 问题描述:在分享成功后,回调函数未正确执行,导致页面状态未更新或显示异常。
  • 解决方法:确保在 uni.share 的回调函数中正确处理了分享成功或失败的情况。例如:
    uni.share({
        provider: 'weixin',
        scene: 'WXSceneSession',
        type: 0,
        title: '分享标题',
        summary: '分享内容',
        success: function (res) {
            console.log('分享成功', res);
            // 更新页面状态或显示成功提示
        },
        fail: function (err) {
            console.log('分享失败', err);
            // 更新页面状态或显示失败提示
        }
    });
    

2. 页面生命周期问题

  • 问题描述:在分享回调中,可能涉及到页面数据的更新,但页面生命周期未正确处理,导致页面显示异常。
  • 解决方法:确保在回调函数中更新页面数据时,页面已经加载完成。可以使用 onLoadonShow 生命周期钩子来确保页面状态正确更新。

3. 异步操作未处理

  • 问题描述:在分享回调中,如果有异步操作(如网络请求),未正确处理异步操作的结果,导致页面显示异常。
  • 解决方法:确保在异步操作完成后,再更新页面状态。例如:
    uni.share({
        provider: 'weixin',
        scene: 'WXSceneSession',
        type: 0,
        title: '分享标题',
        summary: '分享内容',
        success: function (res) {
            console.log('分享成功', res);
            // 异步操作
            uni.request({
                url: 'https://example.com/api',
                success: function (response) {
                    // 更新页面状态
                    this.setData({
                        data: response.data
                    });
                }
            });
        },
        fail: function (err) {
            console.log('分享失败', err);
        }
    });
回到顶部