uni-app 3.3.13 云打包时微博登陆/分享首次失败第二次成功

uni-app 3.3.13 云打包时微博登陆/分享首次失败第二次成功

开发环境 版本号 项目创建方式
Mac 12.2.1 HBuilderX

操作步骤:

  • 3.3.13 云打包,ios 真机测试微博登陆和分享

预期结果:

  • 3.3.13 云打包,ios 真机测试微博首次成功

实际结果:

  • 3.3.13 云打包,ios 真机测试微博首次失败

bug描述:

3.3.13 云打包,微博登陆/分享第一次失败,第二次成功
第一次登陆/分享的时候,微博界面显示app应用信息没有识别到,并且回调的时候,进入 Safari 页面,没有正常拉起
https://www.huabbao.com/weibosdk/response?checkLink=https%3A%2F%2Fopen.weibo.com%2Fweibosdk&id=AAA9D41D-70D9-4436-A3D5-D5F0F0FF9D03&checkStatus=1
第二次登陆/分享的时候就正常了

视频见附件

1649299903313681.mp4_.zip

6 回复

检查你的微博开放平台的回调页配置是否正确
还有 微博的通用链接 配置是否正确


您好 这个问题解决了吗?

我也遇到相同问题了,第一拉起直接打开了safari, 访问了一个Universal links + /weibosdk/response的地址 现在唯一不懂得就是分享回调地址redirect_uri到底有什么用 又该填写什么 全网都没有找到任何有效信息

回复 1***@qq.com: 那个是微博的参数 有的业务需要指定的回调页吧

您好 这个问题解决了吗?

在使用 uni-app 3.3.13 进行云打包时,如果遇到微博登录/分享首次失败,第二次成功的情况,可能的原因包括以下几个方面:

1. 初始化问题

  • 原因:微博 SDK 可能没有在应用启动时正确初始化,导致第一次调用时失败。

  • 解决方案:确保在应用启动时正确初始化微博 SDK。可以在 App.vueonLaunch 生命周期中进行初始化。

    onLaunch: function() {
        uni.initWeiboSDK({
            appKey: '你的微博AppKey',
            scope: 'all',
            redirectURI: '你的回调地址'
        });
    }

2. 网络延迟或超时

  • 原因:第一次调用时可能由于网络延迟或超时导致失败。

  • 解决方案:增加重试机制,或者在调用微博登录/分享前检查网络状态。

    uni.getNetworkType({
        success: function (res) {
            if (res.networkType === 'none') {
                uni.showToast({
                    title: '网络不可用',
                    icon: 'none'
                });
            } else {
                // 调用微博登录/分享
            }
        }
    });

3. SDK 缓存问题

  • 原因:微博 SDK 可能在第一次调用时没有正确缓存某些信息,导致失败。

  • 解决方案:在调用微博登录/分享前,尝试先调用一次 SDK 的其他方法,确保 SDK 已经正确加载。

    uni.checkWeiboInstall({
        success: function (res) {
            if (res.installed) {
                // 调用微博登录/分享
            } else {
                uni.showToast({
                    title: '未安装微博客户端',
                    icon: 'none'
                });
            }
        }
    });

4. 权限问题

  • 原因:第一次调用时可能由于权限问题导致失败。

  • 解决方案:确保在调用微博登录/分享前,已经获取了必要的权限。

    uni.authorize({
        scope: 'scope.userInfo',
        success: function () {
            // 调用微博登录/分享
        },
        fail: function () {
            uni.showToast({
                title: '授权失败',
                icon: 'none'
            });
        }
    });

5. SDK 版本问题

  • 原因:使用的微博 SDK 版本可能存在兼容性问题。
  • 解决方案:尝试更新到最新版本的微博 SDK,或者使用 uni-app 提供的最新插件。

6. 云打包配置问题

  • 原因:云打包时可能某些配置没有正确设置,导致第一次调用失败。
  • 解决方案:检查云打包的配置文件,确保所有必要的配置项都已正确设置。

7. 日志分析

  • 原因:具体原因可能需要通过日志分析来确定。

  • 解决方案:在开发模式下启用详细日志,查看第一次调用时的错误信息,根据错误信息进行针对性解决。

    uni.setEnableDebug({
        enableDebug: true
    });
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!