根据公司的需求,需要一套uniapp写的微信小程序,和uniapp写的h5,h5通过webview嵌入小程序内;
问题一:h5页面,iOS端调用uni.chooseLocation(),地图初始定位位置不准确;
安卓用户可以正常使用,但是苹果用户调用腾讯地图时,定位初始位置显示不准确
解决方案:微信小程序中调用uni.chooseLocation()时,苹果用户的初始定位是正常的,
根据这个思路,我就想到,将h5跳转至小程序中调用腾讯地图,然后再将选择地图位置后的回调参数返回至h5页面中;但是面临webview和小程序之间的通讯问题;
注:h5页面跳转至小程序,需要引入微信JSSDK,使用wx.miniprogram.navigateTo();
问题二:小程序在调用完成uni.chooseLocation()后,如何将参数返还至h5页面;
常规思路是使用uni.navigateback(),但是回到原页面后,无法将地图选择的参数,带回原页面;查询各种资料后,
解决方案:在调用地图控件选择完位置后,使用setdata直接更新webview页面的data里面的变量值,然后uni.navigateback()返回h5页面的时候,会触发小程序中的webview页面中的onShow生命周期,在此生命周期