溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue 微信端掃描二維碼蘋果端卻只能保存圖片問題(解決方法)

發(fā)布時間:2020-09-08 04:33:49 來源:腳本之家 閱讀:238 作者:三里清風(fēng) 欄目:web開發(fā)

這幾天做個了項。就是微信掃描二維碼的然后進入公眾號網(wǎng)頁巴拉巴拉的,然后就很順利的遇到了在安卓端掃碼的時候,順利的一塌糊涂,然后到了蘋果端的時候,就只能出現(xiàn)一個保存圖片,然后就寫一下記錄一下這問題的解決方法。

問題

機型:iphone 7p

這里的二維碼是一張圖片,微信返回的圖片,具體下圖

Vue 微信端掃描二維碼蘋果端卻只能保存圖片問題(解決方法) 

然后是正常情況下。當(dāng)我們開始掃碼的時,應(yīng)該是這個樣子

Vue 微信端掃描二維碼蘋果端卻只能保存圖片問題(解決方法) 

這個是正常的,但是在蘋果端的時候就懵了,下面的菜單就只有一個保存圖片。那么如何解決呢,請看下面。

解決方案

解決方案其實有兩種。

使用 qrcodeJs 就不做介紹了,官網(wǎng)應(yīng)有盡有,也就是將二維碼的鏈接填寫進繪制的 canvas 里面,然后生成二維碼掃描。

附上github地址: qrcodejs

  • 使用a標(biāo)簽進行跳轉(zhuǎn)
  • 使用 a 標(biāo)簽進行跳轉(zhuǎn)這個應(yīng)該沒什人有疑問怎么做了,也就是幾行代碼的事情
let a = document.createElement("a");
a.href = `${window.location.origin}/invite?qrcode=${qrcode}`;
a.click();

這個在項目內(nèi)的時候呢,確實是可以解決問題的,但如果從外部帶參數(shù)進入網(wǎng)頁,例如有人分享了一個二維碼給我,然后讓我去掃碼的時候呢? 他就不行了。然后經(jīng)過我?guī)状螠y試之后,我發(fā)現(xiàn)了問題

// 第一次跳轉(zhuǎn)的時候,也就是進入頁面的時候,url是這樣的
http://dududev.huikaoedu.com/invite?qrcode=https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=xxxx

然后這個時候呢,他是無法掃碼的,只能保存到本地,但是我又想起之前在百度看見一個很奇葩的解決方式,刷新頁面,說是刷新頁面就可以了,然后在我堅持不懈的刷新了兩以后,我發(fā)現(xiàn)我的url變成了下面這樣子

http://dududev.huikaoedu.com/invite?qrcode=https%3A%2F%2Fmp.weixin.qq.com%2Fcgi-bin%2Fshowqrcode%3Fticket%xxx

沒錯,他進行了編碼?。。。。。?!所以最終的方案就是,如果你發(fā)現(xiàn)使用了 a 標(biāo)簽沒用,那么就要進行 encodeURIComponent() 編碼,具體就是這樣了

let a = document.createElement("a");
const qrcode = encodeURIComponent(this.$route.query.qrcode);
a.href = `${window.location.origin}/invite?qrcode=${qrcode}`;
a.click();

總結(jié)

以上所述是小編給大家介紹的V的ue 微信端掃描二維碼蘋果端只能保存圖片解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI