(1)首先注册时未将你所调用的接口名字添加至jsApiListandroid
(2)第二个就是你的这个公众号没有权限使用这个api,例如在开发环境中的微信页面就没法调取这个api,须要发布后,到对应的有权限的公众号中再打开对应的界面,调用api才成功ios
项目开发中,web端调用的是百度地图api,而微信项目中调用的是腾讯本身的地图,二者所使用的坐标系有所不一样,百度用的是本身的百度坐标系,而高德地图和腾讯地图使用的是火星坐标系,二者之间须要作一下转换git
火星坐标 转换到 百度地图坐标
function huoxingToBaidu(hxLongitude, hxLatitude){ var X_PI = Math.PI * 3000.0 / 180.0; var x = hxLongitude, y = hxLatitude; var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI); var bdLongitude = z * Math.cos(theta) + 0.0065; var bdLatitude = z * Math.sin(theta) + 0.006; return { bdLongitude: bdLongitude, bdLatitude: bdLatitude }; }
百度地图坐标 转换到 火星坐标
function baiduToHuoxing(bdLongitude,bdLatitude) { var X_PI = Math.Pi * 3000.0 / 180.0; var x = bdLongitude - 0.0065; var y = bdLatitude - 0.006; var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI); var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI); var hxLongitude = z * Math.cos(theta); var hxLatitude = z * Math.sin(theta); return { hxLongitude: hxLongitude, hxLatitude: hxLatitude } }
在微信网页开发过程当中,测试提出的一个bug,在微信中预览图片是,点击图片,打开图片正常,当再次点击时,本来应该直接退出图片预览,可是却须要点击两次才能退出预览。web
分析缘由
应该是 previewImage 这个接口调用了两次,进行了图片的叠加。因此须要两次才能退出api
最终得出的结果
代码中实际上只调用了一次。微信
解决方案
在方法的最前面进行手机系统的判断,当是Android系统直接return。
而后在在下面进行微信的previewImage接口的调用测试
js判断是Android仍是ios
var u = navigator.userAgent; isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端 isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
2018.8.1更新
这个bug好像微信本身修复了,如今不管Android仍是ios,若是不调用这个方法,微信本身不会去调用了。code