收藏
回答

IOS系统签名认证报错,但是同样的页面安卓系统访问就没有问题,有遇到的吗?

我正在使用uview+uniapp 开发公众号网页, 其中有根据经纬度跳转位置导航的需求,我用到了这个wx.openLocation接口

安卓系统中:一切正常能打开地图

IOS系统中:却报错签名有问题,但是刷新页面后再点击【立即导航】按钮就能正常跳转了



        import img from '../../static/image/address.png';
	import { MapLoader } from '../../common/utils.js';
	const wx = require('jweixin-module');
	export default {
		data() {
			return {
				pageLoading: false,
				latitude: 26.649295,
				longitude: 102.252515,
				mapContext: null
			};
		},
		onLoad() {
			console.warn(location.href, 'map:location.href')
			MapLoader().then(() => {
				this.$nextTick(function() {
					this.initData();
				})
			})
		},
		methods: {
			async initData () {
				try{
					this.pageLoading = true;
					this.$u.showLoading();
					await this.initWx();
					await this.initMap();
				}catch(e){
				} finally {
					this.$u.hideLoading();
					this.pageLoading = false;
				}
			},
			async initMap() {
				const center = new TMap.LatLng(this.latitude, this.longitude)
				const map = new TMap.Map(document.getElementById('map'), {
					center: center, 
					zoom: 18.2,
					pitch: 43.5,
					rotation: 45
				});
				const markerLayer = new TMap.MultiMarker({
					map: map,
					styles: {
						"myStyle": new TMap.MarkerStyle({
							"width": 250,
							"height": 50,
							"src": '../../static/image/map_address.png',
							"anchor": {
								x: 110,
								y: 10
							}
						})
					},
					geometries: [{
						"id": "1""styleId": 'myStyle'"position": new TMap.LatLng(this.latitude, this.longitude),
					}, {
						"id": "2",
						"styleId": 'marker',
						"position": new TMap.LatLng(this.latitude, this.longitude),
					}]
				});
			},
			async initWx() {
				try{
					const res = await this.$http.get('/WxApp/GetShareConfig', {
						url: location.href,
					});
					const data = res.data;
					await wx.config({
					  debug: data.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
					  appId: data.appId, // 必填,公众号的唯一标识
					  timestamp: data.timestamp , // 必填,生成签名的时间戳
					  nonceStr: data.nonceStr, // 必填,生成签名的随机串
					  signature: data.signature,// 必填,签名
					  jsApiList: data.jsApiList // 必填,需要使用的JS接口列表 ['openLocation']
					});
				}catch(e){
					this.$u.toast(e.message)
				}
			},
			openMap() {
				const {latitude, longitude} = this;
				wx.ready(function() {
					wx.openLocation({
						latitude: latitude, // 纬度,浮点数,范围为90 ~ -90
						longitude: longitude, // 经度,浮点数,范围为180 ~ -180。
						name: '防震减灾服务中心', // 位置名
						address: '四川省凉山彝族自治州会理市G108(京昆线)', // 地址详情说明
						scale: 15, // 地图缩放级别,整形值,范围从1~28。默认为最大
						infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
					});
				})
			}
		}
	}
最后一次编辑于  2021-12-15
回答关注问题邀请回答
收藏

1 个回答

  • 巴斯光年
    巴斯光年
    2022-06-08

    会不会是 ios这边 获取 签名时机 有问题

    2022-06-08
    有用
    回复
登录 后发表内容