1***@qq.com
1***@qq.com
  • 发布:2023-04-20 20:33
  • 更新:2023-10-20 22:28
  • 阅读:514

救命救命!打包成android后就出问题,获取不到高德api,一直在loading,求解答!

分类:uni-app

实现的功能是上传图片并获得图片的经纬度和地址,调用的是高德的api,在web页面上一切正常;


一旦运行到指定基座和打包成app就会卡在获取经纬度和地址上导致一直加载。。。

这是我写的uploadFile方法。

uni.chooseImage({  
                    sizeType: ['original'],  
                    success: (chooseImageRes) => {  
                        let _type = chooseImageRes.tempFiles[0].type;//识别图片类型  
                        const tempFilePaths = chooseImageRes.tempFilePaths;  
                        const FilePaths = chooseImageRes.tempFilePaths[0];  
                        uni.showLoading({  
                                title: '正在分析图片数据',  
                                mask:true,  
                            });  
uni.uploadFile({  
                            // url: 'http://127.0.0.1:5000//imgUp',//本地接口地址  
                            url: setting.url+'/imgelifyan',  
                            filePath: tempFilePaths[0],  
                            name: 'file' ,  
                            formData: {  
                            },  
                            success(res) {  
                                if(res.data=='0'){  
                                    console.log("不是麦穗",res)  
                                    uni.showToast({  
                                            title: '图片不是麦穗',  
                                            icon:'error',  
                                            duration:850  
                                    });  
                                uni.hideLoading()         
                                }else{  
                                    _this.upImgState=1  
                                    console.log("是麦穗",res)  
                                    _this.imgaddr=tempFilePaths[0]    
                                    //获取图片位置信息  
                                    getImageData(FilePaths).then(res=>{  
                                         console.log(res)  
                                        if(getFloatLocationByExif(res.exif)!=null){  
                                            _this.latitude=getFloatLocationByExif(res.exif).lat;  
                                            _this.longitude=getFloatLocationByExif(res.exif).lon;  
                                            uni.request({  
                                                header:{"Content-Type": "application/text"},  
                                                //注意:这里的key值需要高德地图的 web服务生成的key  只有web服务才有逆地理编码  
                                                url:'https://restapi.amap.com/v3/geocode/regeo?output=JSON&location='+_this.longitude+','+_this.latitude+'&key=.........&radius=1000&extensions=all',  
                                                success(re) {  
                                                    console.log(re)  
                                                    if(re.statusCode===200){  
                                                        if(!re.data.regeocode.addressComponent.city==[]){  
                                                            _this.address=re.data.regeocode.addressComponent.city;  
                                                        }  
                                                        _this.address=re.data.regeocode.formatted_address;  
                                                        console.log("获取中文街道地理位置成功",_this.address)                     
                                                    }else{  
                                                        console.log("获取信息失败,请重试!")  
                                                    }  
                                                }  
                                            });  

                                        }else{  
                                            console.log("图片路径缺失")  
                                            uni.showToast({  
                                                    title: '请选择拍摄地点',  
                                                    duration:850  
                                                });  
                                            _this.map()  
                                        }  
                                        uni.hideLoading()  
                                    }).catch(e=>{  
                                         console.log(e)  
                                    });  
                                    console.log(chooseImageRes.tempFiles[0].size,"图片大小")  
                                    if(chooseImageRes.tempFiles[0].size>3145728){  
                                        uni.compressImage({  
                                            src: _this.imgaddr,  
                                            quality: 80,  
                                            success: res => {  
                                            console.log('原路径',_this.imgaddr)  
                                            _this.imgaddr=res.tempFilePath  
                                            console.log('压缩图片路径',res.tempFilePath)  

                                            }  
                                        })  
                                    }  

                                }  
                            }  
                        })

感觉是高德api出现了问题,但网上的解决方法基本都试过了,还是有问题,希望大佬指出问题所在!!

2023-04-20 20:33 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

输出返回的错误信息分析下

  • 1***@qq.com (作者)

    14:43:24.451 是麦穗, [Object] {"data":"1","statusCode":200,"errMsg":"uploadFile:ok"} at pages/firstpage/firstpage.vue:274

    14:43:24.455 [Number] 3407630 , 图片大小 at pages/firstpage/firstpage.vue:312

    14:43:24.500 [Object] {"type":"error","bubbles":false,"cancelBubble":false,"cancelable":false,"lengthComputable":...} at pages/firstpage/firstpage.vue:310

    14:43:24.699 原路径, file:///storage/emulated/0/DCIM/Camera/IMG_20230419_092850.jpg at pages/firstpage/firstpage.vue:318

    14:43:24.704 压缩图片路径, _doc/uniapp_temp_1682058871040/compressed/1682059405227_IMG_20230419_092850.jpg at pages/firstpage/firstpage.vue:320

    这是真机运行输出的信息,没有报错,但是好像是直接把getImageData(FilePaths)这个方法给跳过了一样。。。

    2023-04-21 14:45

  • DCloud_App_Array

    回复 1***@qq.com: 根据日志分析出哪个API失败了,再查看对应API返回的错误信息来分析

    2023-04-26 12:58

尹小强

尹小强

您好请问解决了吗

  • II优选

    简单看了一下代码,逻辑上的问题

    2023-10-21 09:15

要回复问题请先登录注册