uniapp开发微信公众号+天地图+jweixin-module包实现实时定位

370 阅读2分钟
前言:
用uniapp开发微信公众号的开发是真滴恶心,无法实时编译实时看效果,必须打包到服务器上再去看效果,,百度好多资料,还是没找到解决方法,有啥快捷的办法,,大佬们请指导。

  [jweixin-module](https://wechat.jinguc.com/wechat/index/index.html#/pages/add_payroll/add_payroll?wechat_id=gh_943c05db40b4)定位最主要的东西就是这个,链接时微信官方的开发文档,这篇文章我门只说怎么用,实现逻辑如下:
  我先在主页面created的里调用jweixin-module的接口,获取到位置经纬度,然后再有个按钮,点击跳转到map页面,然后再map页面里初始化地图,然后用传过来的经纬度向天地图发送请求,获取到解析后的地址,然后展示到页面上,具体代码如下:
实现
/*we_cheat.js*/

var jweixin = require('jweixin-module');
export default { 
    // 先判断是否微信环境  这都能百度到,直接写就先
    isWechat:function(){  
        var ua = window.navigator.userAgent.toLowerCase();  
        if(ua.match(/micromessenger/i) == 'micromessenger'){  
            return true;  
        }else{  
            return false;  
        }  
    },
    
    // 再获取位置 注意参数是个函数
    getLocation:function(callback)
	{
		if(this.isWechat())
		{
			jweixin.getLocation({
				// 位置签名,仅当需要兼容6.0.2版本之前时提供,详见附录4
				type:'wgs84', // 默认wgs84
				success: function (res) {
				   if(callback)
				   {
                                        allback(res);
				   }
				}
			});
		}
	},
        
}

现在只需要引入就可以,根据自己需求来,用的地方多就全局挂载到mian.js

    import weizhi from 'we_chat.js文件的位置'  
    if(wechat.isWechat()){  
        Vue.prototype.$weizhi =weizhi;  
    } 

然后就是怎么用:

/*test.vue*  该文件里获取定位信息/

created() {
        if (this.$weizhi && this.$weizhi.getLocation) {
                this.$weizhi.getLocation(this.getWeizhi);  // this.getWeizhi是你在methods中生明的方法
        }
        // 判断当前域名是不是https。不是则关闭定位功能
        if (window && window.location && window.location.protocol && window.location.protocol == "https:") {
                this.addrHttps = true;
        }
},


methods:{
    getWeizhi(data){
        // 这里的data就是你获取到的经纬度的数据{longitude:'114.2595',latitude:'25.25661'}
        // 然后拿着这个去map页面去发请求,拿到解析后的地址就可以了  具体怎么发请求,去看我上一篇文章,里面有详细教程
    }
}

效果如下

1690278749195.png

完事!!!