z***@163.com
z***@163.com
  • 发布:2019-03-28 10:20
  • 更新:2019-04-03 18:29
  • 阅读:1704

【报Bug】Hbuilder X发行打包的微信小程序中调用 uni.getProvider 方法 在ios9和ios10 系统会报错

分类:uni-app

详细问题描述

uni-app中使用uni.getProvider 方法,Hbuilder X发行打包微信小程序后 ,在苹果手机ios9.3.5和ios9.3.2系统和ios10.3.1系统会报错(这几个系统是真实测试过的,所以猜测应该是ios11以下的系统uni.getProvider 方法应该都会报错);

重现步骤

1.Hbuilder X发行打包的uni-app开发的微信小程,调起微信开发者工具后

  1. 使用微信开发者工具生成预览二维码,使用系统为ios9或ios10系统的苹果手机扫描预览码(注意一定要使用苹果手机去扫预览码,安卓手机没有这个问题,而且不可以使用微信开发者工具的真机调试的码,真机调试的码也没有这个问题,一定要去扫微信开发者工具的预览生成的二维码,才可以重现这个bug)
  2. 触发程序中调用uni.getProvider 方法的事件,就会报错

IDE运行环境说明

[HBuilder 或
HBuilderX

[IDE版本号]

微信开发者工具
[windows版本号]
win10系统
[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序]
[运行端版本号]

App运行环境说明

[Android版本号]
[iOS版本号]
苹果手机ios9.3.5和ios9.3.2系统和ios10.3.1
[手机型号]
[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]

//获取服务供应商  
getProvider(type) {  
    let provider = ''  
    uni.getProvider({  
        service: type,  
        success: (e) => {  
            console.log("===============获取服务供应商成功====================")  
            console.log("payment success", e);  
            provider = e.provider.map((value) => {  
                switch (value) {  
                    case 'alipay':  
                        return {  
                            name: '支付宝',  
                            value: value,  
                            type: type  
                        }  
                    case 'weixin':  
                        return {  
                            name: '微信',  
                            value: value,  
                            type: type  
                        }  
                    case 'wxpay':  
                        return {  
                            name: '微信支付',  
                            value: value,  
                            type: type  
                        }  
                }  
            })  
            if (type == 'oauth') {  
                this.oauthProviderList = provider[0]  
            } else if (type == 'payment') {  
                this.paymentProviderList = provider[0]  
            }  
        },  
        fail: (e) => {  
            console.log("===============获取服务供应商失败====================")  
        }  
    });  
}

联系方式

[QQ]
2511936124

2019-03-28 10:20 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

hello uni-app有这个问题吗?

DCloud_UNI_HT

DCloud_UNI_HT

bug 确认,已加分。

DCloud_UNI_HT

DCloud_UNI_HT

使用最新的 huilderx 1.8.2 ,在试一试,看看是否还会有这个问题。

  • z***@163.com (作者)

    使用 huilderx 1.8.2,也还是有这个问题

    2019-04-03 09:44

  • DCloud_UNI_HT

    回复 z***@163.com:你先直接运行一个空白项目,看是否还有这个问题,看看你那里到底是框架问题,还是getProvider 的问题

    2019-04-03 12:22

DCloud_UNI_HT

DCloud_UNI_HT

看一下你的手机微信是什么版本 ,基础库是什么版本, 基础库版本要保证至少 2.2.3 以上才行。

  • z***@163.com (作者)

    手机微信版本:7.0.3;小程序基础库版本:2.6.4;这个问题依然存在

    2019-04-04 17:32

  • z***@163.com (作者)

    或者说,你可以告诉我你用的是什么版本的微信和基础库是可以调起getProvider的,我可以换成跟你一样的

    2019-04-04 17:34

  • z***@163.com (作者)

    要在苹果手机ios9.3.5和ios9.3.2系统和ios10.3.1系统上调起哦,其他系统我也是没问题的

    2019-04-04 17:36

  • DCloud_UNI_HT

    回复 z***@163.com:要看手机上的微信的基础库版本,创建一个原生小程序的项目,然后 通过 wx.getSystemInfo(Object object) 获取 SDKVersion 客户端基础库版本。不要看开发者工具中的。

    2019-04-04 17:43

该问题目前已经被锁定, 无法添加新回复