h5页面调用小程序的定位功能_微信小程序与H5内嵌网页交互实现地图定位功能...

本文介绍了如何在H5页面中调用微信小程序的定位功能,通过< web-view >标签在小程序中运行Vue项目,利用微信JSSDK、小程序API实现地图定位,并在vue组件与小程序之间传递参数,完成定位功能的交互。
摘要由CSDN通过智能技术生成

小程序中有很多好用的API,整个项目我们是用vue实现的,使用小程序的内嵌网页功能完成交互。

使用小程序的< web-view >标签将vue项目在小程序中运行。大概的背景就是这样。接下来介绍具体怎么完成微信小程序与vue内嵌页面实现地图定位功能。

1.首先在index.html中引入微信jssdk

2.在小程序中

3.在vue组件中,点击获取地图位置按钮,触发事件。

//携带参数进入小程序,使用小程序地图定位API

fixPosition() {

//保存当前地址,以便从小程序中返回时使用

let jumpUrl = window.location;

//传递多个参数时用&连接

let path = `/pages/address/address?address=${this.warehouse.local}&jumpUrl=${jumpUrl}`

//使用navigateTo跳转到小程序路径中

window.wx.miniProgram.navigateTo({

url: path

})

}

4.在小程序address.js中

4.1在data中定义传递过来的变量,Id和jumpUrl

4.2在onload中,将从vue中传递过来的值赋给Id和jumpUrl

4.3getCenterLocation中调用小程序Api wx.getLocation,wx.chooseLocation获取定位,并且将进行参数返回处理,详细介绍如下

4.4在onReady中调用一下getCenterLocation

Page({

data: {

Id:``,

jumpUrl:``

},

onLoad: function(options) {

this.setData({

Id:options.Id,

jumpUrl: options.jumpUrl

})

},

onReady: function(e) {

// 使用 wx.createMapContext 获取 map 上下文

this.mapCtx = wx.createMapContext('myMap');

this.getCenterLocation()

},

getCenterLocation: function() {

let that = this;

wx.getLocation({

type: 'wgs84', //返回可以用于wx.openLocation的经纬度

success: function(res) {

let latitude = res.latitude

let longitude = res.longitude

wx.chooseLocation({

latitude: latitude,

longitude: longitude,

scale: 28,

success: function(res) {

this.address = res.address

rePage.setData({

//携带选择的地址res.address返回到vue内嵌界面中

url: that.data.jumpUrl + `?address=${res.address}`

})

console.log(this.address)

wx.navigateBack({

delta: 1

})

}

})

}

})

},

})

5.在vue组件中将小程序传过来的值付给定义为位置的这个参数local,注意,由于小程序与vue的生命周期的问题,赋值需要写在 beforeRouteUpdate中,关于vue路由钩子的介绍详细可参考vue路由钩子官方文档

beforeRouteUpdate(to, from, next) {

if(this.$route.query.address){

this.warehouse.local=to.query.address;

}

next()

},

结果展示如下:

以下这篇文章给了我很多帮助,可以参考微信小程序与内嵌网页交互实现支付功能

微信小程序是一种轻量级的应用程序,可以直接在微信内部运行。与传统的H5页面不同,微信小程序具有更快的加载速度、更高的交互性、更多的功能和更好的用户体验。但是,有些时候,为了满足用户的需求,我们可能需要在微信小程序嵌入H5页面。 在微信小程序嵌入H5页面的过程分为两个步骤: 1. 生成微信小程序的web-view组件,这个组件可以承载H5页面。 2. 在H5页面引入微信提供的JS-SDK,通过JS-SDK调用微信小程序的API,实现小程序内嵌H5页面的效果。 下面是具体步骤: 1. 在微信小程序wxml代码,添加web-view组件,代码如下: <web-view src="{{url}}"></web-view> 其,url是要嵌入的H5页面的URL地址。 2. 在H5页面引入微信提供的JS-SDK,代码如下: <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> 3. 在H5页面使用JS-SDK调用微信小程序的API,实现小程序内嵌H5页面的效果,代码如下: <script> wx.miniProgram.navigateTo({ url: '/pages/webview/webview?url=' + encodeURIComponent(window.location.href) }); </script> 以上代码实现功能是,在H5页面调用微信小程序的API,跳转到小程序页面,并把当前页面的URL地址通过query参数传递给小程序页面。 需要注意的是,在使用微信小程序内嵌H5页面时,需要遵循微信小程序的一些规则,比如必须使用HTTPS协议、不能跳转到其他小程序等。同时,也要注意H5页面的适配性,确保在小程序的显示效果与在浏览器一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值