介绍

最近接受了一个uniapp的项目,由于uniapp涉及到的是vue的一套语法,用起来很简单,刚开始没有什么难度,可是到后来涉及到Android和IOS的适配以及第三方(QQ、微信的登录与分享、对接微博等三方应用的分享,第三方sdk如百度、腾讯等地图的超详细定位,与蓝牙、SDK的通信、手机通讯录的获取等等)对接的时候出现了很多问题,这次先记录一部分,后续还回补充

证书别名、密码、文件、安装包名称、安装包签名

相信做过uniapp的同学,对这几个应该比较熟悉了,在对接qq或者微信、微博等等分享功能,使用百度腾讯等地图定位的时候都会让填写安装包名称和安装包签名,如对接qq分享:

uniapp云端打包android uniapp云打包收费_uni-app


那么这里的安装包名称、安装包签名又是指的什么呢?

首先安装包名指的就是我们使用hbuildex创建的uniapp项目在云打包时的Andoid包名:

uniapp云端打包android uniapp云打包收费_uni-app_02


注意最后如果你看到的下面和我一样的界面(这里面没有我们需要的SHA1),那你就需要下载一个软件,来获取SHA1,链接如下,永久有效:

链接:https://pan.baidu.com/s/1Nax-GZWDzMcwjJpc7GypVA?pwd=ug5e 提取码:ug5e

uniapp云端打包android uniapp云打包收费_uniapp云端打包android_03


安装好之后输入包名,获取SHA1秘钥

uniapp云端打包android uniapp云打包收费_git_04


获取当前非常详细的位置

由于uniapp的uni.getLocation方法只能获取当前的经纬度,address基本上是拿不到的,下面的方法可以让我们在app上获取到非常详细的地理位置

先去进行配置自己的key

uniapp云端打包android uniapp云打包收费_安装包_05

下面的url是来自于百度地图的官方api,官方的api地址如下:

https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad

uniapp云端打包android uniapp云打包收费_git_06


下面是我封装的一个方法,注意替换掉自己的key

// 获取当前位置
			getposition() {
				console.log(1);
				var _this = this
				uni.getLocation({
					type: 'wgs84',
					success: function (res1) {
						_this.longitude=res1.longitude
						_this.latitude=res1.latitude
						uni.request({
							url:'https://api.map.baidu.com/reverse_geocoding/v3/?ak=自己申请的用于web的key=json&coordtype=wgs84ll&location='+res1.latitude+','+res1.longitude,
							success(res) {
								console.log(res);
								console.log(res.data.result.formatted_address);
							},
							fail(res) {
								console.log(res);
							}
						})
					}
				});

			}

获取到的部分信息如下(非常详细):

uniapp云端打包android uniapp云打包收费_uniapp云端打包android_07