1.微信web开发调用jssdk时permissiondeniedwhencallingjssdk的原因大致有两种(1)你调用的接口在第一次注册的时候没有注册将名称添加到jsApiList中(2)第二种是你的公众号没有有权使用此api。比如开发环境的微信页面是不能调用这个api的。发布后,到相应授权的中再次打开相应的接口,调用api成功。2.微信jssdk使用微信内置地图查看位置[openLocation]界面最后显示不准确。腾讯自己的地图使用不同的坐标系。百度使用的是自己的百度坐标系,而高德地图和腾讯地图使用的是火星坐标系。两者之间需要换算火星坐标。转换为百度地图坐标functionhuoxingToBaidu(hxLongitude,hxLatitude){varX_PI=Math.PI*3000.0/180.0;varx=hxLongitude,y=hxLatitude;varz=Math.sqrt(x*x+y*y)+0.00002*Math.sin(y*X_PI);vartheta=Math.atan2(y,x)+0.000003*Math.cos(x*X_PI);varbdLongitude=z*Math.cos(theta)+0.0065;varbdLatitude=z*Math.sin(theta)+0.006;返回{bdLongitude:bdLongitude,bdLatitude:bdLatitude};}百度将图形坐标转换为火星坐标functionbaiduToHuoxing(bdLongitude,bdLatitude){varX_PI=Math.Pi*3000.0/180.0;varx=bdLongitude-0.0065;vary=bdLatitude-0.006;varz=Math.sqrt(x*x+y*y)-0.00002*Math.sin(y*X_PI);vartheta=Math.atan2(y,x)-0.000003*Math.cos(x*X_PI);varhxLongitude=z*Math.cos(theta);varhxLatitude=z*Math.sin(theta);return{hxLongitude:hxLongitude,hxLatitude:hxLatitude}}3.微信JSSDK预览图片[previewImage]坑,在安卓手机上,图片预览需要点击两次才能退出预览在微信网页开发过程中,出现了一个bug由测试提出。微信预览图片时,点击图片正常打开图片。再次点击时,应该是直接退出了图片预览,但是需要点击两次才能退出预览。分析原因应该是调用了两次previewImage接口进行图片叠加。所以它需要两次才能退出,实际上它在结果代码中只被调用一次。在Android系统的手机上,其实微信在点击网页图片的时候,会自动调用一次这个接口。然后代码又调用了这个接口,导致了上面的结果。但是在ios系统的手机上,微信是不会调用这个接口的。解决方法是在方法最前面判断手机系统,是安卓系统的时候直接返回。然后下面调用微信的previewImage接口判断是Android还是iosvaru=navigator.userAgent;isAndroid=u.indexOf('Android')>-1||u.indexOf('Adr')>-1,//android终端isiOS=!!u.match(/\(i[^;]+;(U;)?CPU.+MacOSX/);//iosterminal2018.8.1更新这个bug好像是微信自己修复的现在不管安卓还是ios,如果不调用这个方法,微信自己是不会调用的。
