解決在安卓手機(jī)上面使用window.location.href跳轉(zhuǎn)頁面空白問題
問題:通過手機(jī)掃二維碼后打開頁面,使用window.open(), ios與安卓的微信、瀏覽器掃碼后正常跳轉(zhuǎn),部分低版本安卓手機(jī)使用微信和瀏覽器掃碼后頁面空白。
將window.open改為window.location.href,還是不能解決部分安卓手機(jī)跳轉(zhuǎn),使用vivo X27(安卓10) 使用微信、瀏覽器掃碼跳轉(zhuǎn)頁面空白
問題分析:
瀏覽器之所以攔截新開窗口是因為該操作并不是用戶主動觸發(fā)的,所以它認(rèn)為這是不安全的就攔截了,
即使 ajax 回調(diào)函數(shù)中模擬執(zhí)行 click 或者 submit 等用戶行為(trigger('click')),瀏覽器也會認(rèn)為不是由用戶主動觸發(fā)的,
因此不能被安全執(zhí)行,所以被攔截。
問題:在低版本的安卓手機(jī)中使用window.location.href跳轉(zhuǎn)失效
解決1:
分析:在跳轉(zhuǎn)鏈接后面添加時間戳,因為考慮到是低版本可能存在緩存的問題所以采用在跳轉(zhuǎn)鏈接后面添加動態(tài)的參數(shù)時間戳來刷新緩存的數(shù)據(jù)
我最后是以這種方法解決:
// 在跳轉(zhuǎn)鏈接后面添加時間戳,因為考慮到是低版本可能存在緩存的問題所以采用在跳轉(zhuǎn)鏈接后面添加動態(tài)的參數(shù)時間戳來刷新緩存的數(shù)據(jù)
window.location.href = url+'?time='+((new Date()).getTime());
解決2:
分析: 在采用上面的方式之后,還是會有一些機(jī)型跳轉(zhuǎn)有問題,又試了另外一種方法 將跳轉(zhuǎn)的方式變成異步的方式,使用延時器來模擬(建議時間小于300ms,不然用戶就能夠感知到有些許卡頓的現(xiàn)象)
// 在采用上面的方式之后,還是會有一些機(jī)型跳轉(zhuǎn)有問題,又試了另外一種方法 將跳轉(zhuǎn)的方式變成異步的方式,使用延時器來模擬(建議時間小于300ms,不然用戶就能夠感知到有些許卡頓的現(xiàn)象) setTimeout(() => { window.location.href = url+'?time='+((new Date()).getTime()); }, 300);
解決方法來自:https://blog.csdn.net/weixin_43956521/article/details/118101983
你是什么樣的人,便會遇到什么樣的人;你想遇到什么樣的人,就得先讓自己成為那樣的人。

浙公網(wǎng)安備 33010602011771號