欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何解決vue單頁(yè)面在微信下只能分享落地頁(yè)的問(wèn)題

這篇文章主要介紹如何解決vue單頁(yè)面在微信下只能分享落地頁(yè)的問(wèn)題,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到旌陽(yáng)網(wǎng)站設(shè)計(jì)與旌陽(yáng)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋旌陽(yáng)地區(qū)。

實(shí)際上關(guān)鍵詞叫 微信pushState只能分享落地頁(yè) 更貼切一點(diǎn)

應(yīng)用場(chǎng)景:

  1. vue + vue-router

  2. vue-router使用hash模式(history模式?jīng)]試過(guò))

  3. 不使用微信的js-sdk(因?yàn)槲疫@個(gè)項(xiàng)目是可配置域名的商城,比較特殊,不能使用微信sdk)

這個(gè)方案并不是最優(yōu)秀的,會(huì)對(duì)性能造成一定的影響

HTML5 history.pushState

vue-router的內(nèi)部是通過(guò) history.pushState 和 history.replaceState 實(shí)現(xiàn)的。但是iOS設(shè)備的微信瀏覽器不會(huì)去檢測(cè)它們的變化。但是我們可以通過(guò)更新 location.href 讓微信瀏覽器識(shí)別到當(dāng)前的url。

// vue-router/src/util/push-state.js

export function pushState (url?: string, replace?: boolean) {
 saveScrollPosition()
 // try...catch the pushState call to get around Safari
 // DOM Exception 18 where it limits to 100 pushState calls
 const history = window.history
 try {
  if (replace) {
   history.replaceState({ key: _key }, '', url)
  } else {
   _key = genKey()
   history.pushState({ key: _key }, '', url)
  }
 } catch (e) {
  window.location[replace ? 'replace' : 'assign'](url)
 }
}

export function replaceState (url?: string) {
 pushState(url, true)
}

解決方法

window.location.href = window.location.href ,這段代碼可以讓微信記錄當(dāng)前的url,且不會(huì)刷新頁(yè)面??梢栽赼pp.vue中 watch $route 在每次頁(yè)面更新的時(shí)候執(zhí)行一次。

// app.vue

watch: {
 $route: {
  immediate: true,
  deep: true,
  handler(to) {
   // 微信瀏覽器判斷
   const WECHAT_BROWSER = navigator.userAgent.toLowerCase().includes('micromessenger')

   // 解決iOS微信瀏覽器分享地址只能是落地頁(yè)的問(wèn)題,這個(gè)操作是不會(huì)刷新頁(yè)面的,query參數(shù)改變也會(huì)執(zhí)行
   if (WECHAT_BROWSER) {
    // eslint-disable-next-line
    window.location.href = window.location.href
   }
  }
},

使用了上述方法可以解決這個(gè)問(wèn)題,但是這會(huì)引出一個(gè)很奇葩的問(wèn)題,在真機(jī)上進(jìn)入 http://192.168.1.5:8080 和 http://192.168.1.5:8080/#/ 這兩個(gè)頁(yè)面,其中有一個(gè)鏈接的bug依然存在。原因具體不清楚,經(jīng)過(guò)測(cè)試可以在入口文件(main.js)中在頁(yè)面還沒(méi)有展示內(nèi)容前刷新一次頁(yè)面,即可解決這個(gè)問(wèn)題。

// main.js

// 微信瀏覽器判斷
const WECHAT_BROWSER = navigator.userAgent.toLowerCase().includes('micromessenger')

// 在url插入的search參數(shù),可以隨意,但是必須要
// 例:http://192.168.1.5:8080/?_wx_=1#/
const wxQuery = '_wx_=1'
const isRepeatQuery = location.search.includes(wxQuery)
if (WECHAT_BROWSER && !isRepeatQuery) {
 const unit = (location.search && location.search !== '?') ? '&' : '?'
 location.search += unit + wxQuery  // 添加_wx_參數(shù),該操作會(huì)刷新頁(yè)面
}

上面的代碼之所以要在 hash 前面加一個(gè) ?_wx_=1 參數(shù),為了方便刷新頁(yè)面給一個(gè)標(biāo)志位判斷是否已刷新。參數(shù)的 key-value 隨意。

以上是“如何解決vue單頁(yè)面在微信下只能分享落地頁(yè)的問(wèn)題”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁(yè)名稱:如何解決vue單頁(yè)面在微信下只能分享落地頁(yè)的問(wèn)題
文章轉(zhuǎn)載:http://aaarwkj.com/article12/iggpdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、App設(shè)計(jì)微信公眾號(hào)、網(wǎng)站排名商城網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
国产白丝精品爽爽久久| 久久精品亚洲毛片美女极品| 97色伦综合在线欧美| 91在线国产手机视频| 乱码日本欧美一区二区| 中文字幕亚洲入口久久| 91久久国产综合精品| 99精品人妻一区二区三区蜜桃| 亚洲欧美激情专区在线| 丝袜美腿亚洲欧美日韩| 日韩av高清免费播放| 超碰在线免费视频97| 午夜视频在线看一区免费| 欧美国内日本一区二区| 少妇又色又爽又高潮欧美| 加勒比中文字幕日本道| av亚洲天堂免费观看| 日本少妇激情后入嗯啊| 欧美日韩在线不卡成人| 国产白丝免费在线观看| 内射小美女阴户毛片在线| 七月丁香色婷婷婷基地| 97日韩在线免费视频网站| 日韩在线国产精品一区| 成人日韩av免费在线观看| 日韩高清精品视频在线| 国产精品一区二区激情视频| 国产天堂亚洲国产碰碰| 美女高潮啪啪啪91| av在线日韩国产精品| 国产中文精品字幕a区| 中文精品字幕人妻熟女小妇| 日本精品专区在线观看| 日韩精品人妻一区二区免| 日韩欧美一区二区在线播放| 蜜臀av人妻一区二区三区| 一区二区三区欧美影片| 免费午夜福利一区二区| 日韩a国产v亚洲欧美精品| 国产精品区一区二区三区| 亚洲国模av一区二区三区|