(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