這篇文章主要介紹了微信jssdk在iframe頁面失效問題的解決措施 的相關(guān)資料,需要的朋友可以參考下
項(xiàng)目需求
微信端添加拍品的頁面有照片上傳功能,上傳時(shí)打開一個(gè)iframe,該頁面用canvas加載用微信jssdk的選擇圖片接口選擇的圖片(這里微信會(huì)返回一個(gè)形如weixin://xxxx的localid,可直接放在img的src里進(jìn)行預(yù)覽),可進(jìn)行放大縮小移動(dòng)旋轉(zhuǎn)等操作,點(diǎn)擊確定按鈕將編輯好的圖片發(fā)送到服務(wù)器存成圖片
遇到的問題
當(dāng)子頁面功能開發(fā)完成后,在主頁面通過iframe打開子頁面,無法調(diào)用微信jssdk接口中的選擇圖片接口,其他jssdk中的接口也無法正常工作。但是單獨(dú)打開子頁面可以正常工作,主頁面的微信分享等也是正常的。
解決思路
首先是以為主頁面和子頁面同時(shí)注入了jssdk的簽名信息,是否有可能沖突。經(jīng)過測試,排除此種可能。通過網(wǎng)絡(luò)搜索,有網(wǎng)友在此貼中描述的問題與我相似,但沒有解決方法 http://www.weixin.com/thread-8022-1-1.html
通過測試可以在主頁面進(jìn)行簽名驗(yàn)證,子頁面不添加jssdk的簽名信息。需要調(diào)用jssdk接口時(shí),比如圖片選擇接口,在jssdk的函數(shù)前加parent.,即調(diào)用父頁面的此函數(shù),經(jīng)過測試,功能可正常調(diào)用。
parent.wx.chooseImage({
success: function (res) {
//upload_success(res.localIds);
}
值得一提的是,微信jssdk看似功能強(qiáng)大,但是bug不少,真正在項(xiàng)目中使用,經(jīng)不起推敲。雖然解決的此問題,新的問題又來了,canvas導(dǎo)出圖片不能跨域。。。最終還是沒有用微信的接口來實(shí)現(xiàn)需求。
以上所述是小編給大家介紹的微信jssdk在iframe頁面失效問題的解決措施,希望對(duì)大家有所幫助!