uni-app IOS下无法唤起微博

uni-app IOS下无法唤起微博 产品分类|uniapp/App PC开发环境操作系统|Windows PC开发环境操作系统版本号|Windows 10 HBuilderX类型|正式 HBuilderX版本号|3.3.9 手机系统|iOS 手机系统版本号|iOS 14 手机厂商|苹果 手机机型|iPhone6s,iPhoneXR 页面类型|vue vue版本|vue2 打包方式|云端 项目创建方式|HBuilderX App下载地址或H5⽹址|https://apps.apple.com/cn/app/%E8%8F%A0%E8%90%9D%E6%B4%BE/id1599755787

bug描述:

IOS分享至微博无法唤起微博,而微信及QQ都可以唤起 在手机安装微博APP(微博APP已登录)的情况下,在IOS中调用HTML5 的ShareService.send()方法无法唤起微博APP(使用uni.share()也不行) manifest.json=>APP模块配置=>分享=>新浪微博分享中的APPkey、redirect_uri、IOS通用链接均已配置(与微博开房平台中对应信息完全一致 )

示例代码:

shareHandle(){  
    let msg = {  
        type: 'web',  
        href: 'https://www.baidu.com',  
        content: '我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!' // 分享消息的文字内容----微信必填  
    };  
    this.shareWeb('sinaweibo',msg)  
}  
shareWeb(provider, msg) {  
        // #ifdef APP-PLUS  
        const result = {}  
        return new Promise((resolve, reject) => {  
            plus.share.getServices(  
                function(services) {  
                    let shares = ''  
                    services.forEach((element) => {  
                        if (element.id == provider) {  
                            shares = element  
                        }  
                    })  
                    if (provider != 'sinaweibo') {  
                        // 新浪微博没装客户端时可以直接调用网页来分享,所以新浪微博不须要去判断有没有客户端  
                        if (!shares.nativeClient) {  
                            // 如果不存在对应的分享客户端,引导用户安装客户端  
                            result.success = false  
                            result.msg = '分享失败:您还未安装客户端!'  
                            resolve(result)  
                            return  
                        }  
                    }  
                    if (!shares.authenticated) {  
                        // 如果还未认证(QQ和微博),先去认证  
                        shares.authorize(  
                            function() {  
                                shares.send(  
                                    msg,  
                                    function() {  
                                        result.success = true  
                                        result.msg = '分享成功!'  
                                        resolve(result)  
                                    },  
                                    function(error) {  
                                        result.success = false  
                                        result.msg = '分享失败:' + error.message.split('http')[0]  
                                        resolve(result)  
                                    }  
                                )  
                            },  
                            function(error) {  
                                result.success = false  
                                result.msg = '获取授权失败:' + error.message.split('http')[0]  
                                resolve(result)  
                            }  
                        )  
                    } else {  
                        // 如果已经认证(微信),可以直接调用分享,  
                        uni.showModal({  
                            title: '即将进行分享',  
                            content: '即将进行分享',  
                            success: function (res) {  
                            if (res.confirm) {  
                            shares.send(  
                                msg,  
                                function() {  
                                    result.success = true  
                                    result.msg = ''  
                                    resolve(result)  
                                },  
                                function(error) {  
                                    result.success = false  
                                    result.msg = '分享失败:' + error.message.split('http')[0]  
                                    resolve(result)  
                                }  
                            )   
                            } else if (res.cancel) {  
                                console.log('用户点击取消');  
                            }  
                        }  
                    });  
                }  
            },  
            function(error) {  
                result.success = false  
                result.msg = '获取授权失败:' + error.message.split('http')[0]  
                resolve(result)  
            }  
        )  
    })  
// #endif  
}

更多关于uni-app IOS下无法唤起微博的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

提供一下 UNI_ID 吧 后边好像都没点上 微博分享 页面随着动 我看着

更多关于uni-app IOS下无法唤起微博的实战教程也可以访问 https://www.itying.com/category-93-b0.html


UNI7369C00 实际上是点上的,如果在代码shares.send()前一行中插入uni.showModal()的话是可以成功弹框

回复 x***@hotmail.com: 是个Bug 下个版本修复

你提供一个能跑起来的 示例代码

问题描述中的示例代码已更新

同一套代码能在安卓APP中正常唤起微博APP并分享

HBuilderX alpha 3.4.0+ 已修复该问题

回到顶部