uni-app h5页面唤起地图软件

5 篇文章 0 订阅

uni-app h5页面唤起地图软件

1、微信的js-sdk方法

// 这种方式引入失败了,所有找的配置文件下载下来再引入的
// var jwx = require('jweixin-module') 
import jwx from './wxJssdk.js'
export default {
	//判断是否在微信中    
	isWechat: function() {
		var ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			return true;
		} else {
			alert('不是微信客户端,请在微信客户端操作在,谢谢');
			return false;
		}
	},
	// 初始化JS-SDK
	initJssdk: function(callback) {
		// 获取当前url然后传递给后台获取授权和签名信息
		let url = window.location.href;
		// 向后台发送请求获取授权和签名信息
		uni.$u.http.post(`/api/JSSDK/Index`, {
				url: url
			}).then(res => {
				jwx.config({
					debug: false,// 开启调试模式,调用的所有api的返回值会在客户端alert出来
					appId: res.data.appId, // 微信appid
					timestamp: res.data.timestamp,// 生成签名的时间戳
					nonceStr: res.data.nonceStr,// 生成签名的随机串
					signature: res.data.signature,// 签名
					jsApiList: [ //这里是需要用到的接口名称  
						'checkJsApi', //判断当前客户端版本是否支持指定JS接口  
						'getLocation', //获取位置  
						'openLocation', //打开位置  
						'uploadImage' //上传图片  
					]
				});
				if (callback) {
					callback(res.data);
				}
			
		});
	},
	//在需要定位页面调用  
	getlocation: function(callback) {
		// config信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中。
		jwx.ready(function() {
			jwx.getLocation({
				type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'  
				success: function(res) {
					// console.log(res);  
					callback(res)
				},
				fail: function(res) {
					// console.log(res)
				},
				// complete:function(res){  
				//     console.log(res)  
				// }  
			});
		});
	},
	//打开位置
	openlocation: function(data) {
		// if (!this.isWechat()) {
		// 	//console.log('不是微信客户端')  
		// 	return;
		// }
		jwx.ready(function() {
			// console.log('openlocation',data);
			jwx.openLocation({
				latitude: data.latitude,
				longitude: data.longitude,
				name: data.name,
				address: data.address,
				scale: 14,
			});
		});
	},
	//选择图片
	chooseImage: function(callback) {
		// if (!this.isWechat()) {
		// 	//console.log('不是微信客户端')  
		// 	return;
		// }
		//console.log(data);  
		this.initJssdk(function(res) {
			jwx.ready(function() {
				jwx.chooseImage({
					count: 1,
					sizeType: ['compressed'],
					sourceType: ['album'],
					success: function(rs) {
						callback(rs)
					}
				})
			});
		});
	},
}

2、在main.js中将配置注入全局

import jwx from './util/request/wxconfig.js'
Vue.prototype.$jwx = jwx

3、在页面中使用

// 初始化微信配置
mounted() {
	this.$jwx.initJssdk()
},
methods: {
	//定义点击事件,打开第三方地图
	jumpMap(val) {
		// 这个对象里配置地址信息(坐标名称等)等
		let addr = {}
		this.$jwx.openlocation(addr)
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hoki802

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值