今天做项目遇到了一个需求,是一个O2O项目,用户在下单的时候,选择自己的地址,地址需要调用地图,地图获取经纬度和服务者的经纬度进行计算,得出两者之间的距离,从而计算出路费。

于是第一时间想到uniapp的插件市场,找到了一个插件,调用的是腾讯地图。这个插件是H5端的,于是我的思路是:webview打开h5端地图,选择经纬度,保存到storage中,然后再从storage取到值。

插件地址是:https://ext.dcloud.net.cn/plugin?id=9380

遇到的坑是,插件需要调用jquery和腾讯map的js,这两个JS需要在UNIAPP项目的根目录文件index.html模版中配置,如下图:

就这一步,折腾了2个小时,遇到的坑如下:

1、引入两个JS文件以后,完全没有效果,报JQ错误和TMap错误。研究了半天发现原因是js文件配置在index.html模版以后,需要修改manifest.js配置文件,在web配置中,要选择index模版路径,以及配置地图的KEY,如下图:

2、然后配置好这里以后,又尝试调试,发现原本的项目,居然样式全部丢失了。而且还报错,这一步又研究了半天,需要把index.html的代码修改如下:

下面附上图中的具体代码:

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<title>
			<%= htmlWebpackPlugin.options.title %>
		</title>
		<script>
			var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS
				.supports('top: constant(a)'))
			document.write(
				'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
				(coverSupport ? ', viewport-fit=cover' : '') + '" />')
		</script>
		<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
		<script src="https://map.qq.com/api/gljs?v=1.exp&key=FBUBZ-SLYE4-XXXXXXXXXXXXXXXXXXXXX"></script>
	</head>
	<body>
		<div id="app"></div>
	</body>
</html>

OK,打包H5,手机预览,地图正常显示,经纬度选择地址后也可以正常获取!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部